2011-10-12 35 views
0

我工作的Android應用程序,擁有3個I幀被刷新,網頁視圖與Android設備上的iframe,鏈接位置不滾動

  1. 頂部(標題)
  2. 左下角(導航)
  3. 自下而上right(data)

用戶可以按下iframe 3中的某個圖片來顯示詳細信息的彈出窗口。

例如在iframe 3中的座標(100,100)處,我有圖片1,它具有指向detail1的超鏈接。這是有道理的,當我啓動應用程序並按(100,100),detail1會彈出。但奇怪的是,即使我滾動(向下)到圖片1不在的另一個頁面,我按下相對座標(100,100),仍會彈出詳細信息1。

看起來第一個屏幕位置被緩存,並且在滾動時沒有被刷新。我測試了我使它成爲一個沒有iframe的簡單HTML頁面,沒有這樣的問題。有人提出類似的問題,可以分享你的經驗?

+0

我絕望爲,欣賞任何人都可以幫助,謝謝。 – Phil

回答

1

我遇到了同樣的問題。

我工作的項目在IFRAME中加載一個帶有表單元素的長文檔。只要IFRAME不滾動,一切都很好,但如果滾動,事件將被髮送到框架中的子文檔的錯誤座標。

我對這個問題的理論是,iframe計算相對於原點的事件座標(左上角),但在傳播事件到包含的文檔之前「忘記」添加滾動偏移量。這個理論基於具有大量輸入字段,滾動控制量並觀察字段(複選框)如何激活。

我也報道這是http://code.google.com/p/android/issues/detail?id=25766

+0

而且它似乎也存在於android 3.0中,沒有android開發者的注意:http://code.google.com/p/android/issues/detail?id=19625 – Peter

1

也許這是過時的,沒有人有興趣在這個解決方案,但是,我面對這個問題,我有一種變通方法,以達到預期的行爲。

就我而言,我有一個div來封裝這樣的iframe:

<div id="iFrameContainer"> 
    <iframe frameborder="0" id='iframe' width='100%' src='' style="display: none;" onload="loadIframe();"> </iframe> 
</div> 

然後在我的CSS



    #iFrameContainer { 
    overflow: auto; 
    } 

,然後在一個JS代碼(最重要的)是根據iframe的內容設置iframe的高度值。



    resizeIframe(document.getElementById('iFrameContainer')); 

    function resizeIframe(obj) { 
     console.log("RESIZING"); 
     obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px'; 
     obj.contentWindow.document.body.style.overflow ="none"; 
    } 

希望你還是要解決