2012-09-03 13 views
1

我在android中爲Phonegap應用程序提供了一個有趣的bug。我首先注意到,滾動不起作用在模擬器或某些特定設備上(它在我的手機上工作,這是平臺2.3),並嘗試每一個建議,以解決在SO建議中包括多個這樣的問題; 1,本機端修復和2,添加iScroll庫。但是,沒有任何解決方案奏效。此外,不可用的滾動僅影響特定頁面,而不是整個應用程序。更改iframe src打破在Android Phonegap應用程序中的滾動

我已經將問題縮小到這行代碼,它取代了iframe的src屬性。它旨在顯示通過外部內容API獲取url的YouTube視頻的縮略圖。

$('#video').attr('src', newUrl); 

和的iFrame標記

<iframe class="youtube-player" id="video" type="text/html" src="js/views/loading.html" frameborder="0"></iframe> 

我已經很努力在標記編碼的URL,它工作得很好,這件事情有關更換打破頁面滾動的iframe的源的行爲。

我唱的PhoneGap /科爾多瓦1.8.1和最低目標Android平臺2.2

預先感謝您的任何幫助。

*編輯:似乎是與視口有關的東西,因爲刪除標記會停止任何正在滾動的內容。

+0

刪除什麼標籤修復它?我似乎自己有一些iframe相關的問題。我在iPad上,它很奇怪。兩個手指滾動排序的作品,但不是很好。我試圖在iframe中顯示文件,如PDF。你有沒有得到這個工作? – CWSpear

回答

0

我在使用PhoneGap創建的Android應用程序中遇到了類似的問題。我遇到的問題是,隨着iframe中的數據發生變化,可滾動空間的數量也發生變化,因此某些頁面會滾動得太遠而且不夠。

爲了解決這個問題,您必須使用一些JavaScript來調整內容加載時基於內容的iframe的高度。

,我發現這個問題,我的答案:Phonegap HTML5/Android App - Iframe height issue

從這個問題的答案建議使用的iframe的onload屬性來調用調整iframe來的內容相匹配的高度javascript函數。

javascript本身看起來像這樣:其中obj是傳入函數的iframe元素。現在

function resizeIFrame(obj){ 
    obj.style.height = obj.contentWindow.document.body.offsetHeight + "px"; 
} 

,隨時隨地的IFRAME變化的來源,它會通過調整基於該內容的高度,並應解決您的滾動問題。