看看:http://jsfiddle.net/BUNVM/1/靜態的iframe,使網頁unscrollable
<body>
This is a test page<br/>
(many more lines to make the page scrollable)
This is bottom of the test page<br/>
<iframe id="bot_frame" style="width:250px;height:240px;position:fixed;bottom:0px;right:0px;text-align:left;border:0;"></iframe>
<script type="text/javascript">
var iframe_content = '<!DOCTYPE html><html><body style="background-color:#ddd">Frame content</body></html>';
window.onload = function() {
var iframe = document.getElementById("bot_frame");
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(iframe_content);
iframe.contentWindow.document.close();
};
</script>
</body>
它在屏幕的右下角有一個靜態的iframe和內容由document.open添加到它()和文件.write()和document.close()。
,任何東西都很好,當你打開剛纔輸出幀:http://jsfiddle.net/BUNVM/1/show/
但是儘量在最後一個「#」訪問相同的輸出幀在Chrome:http://jsfiddle.net/BUNVM/1/show/#
現在試圖滾動頁面,頁面卡在底部,無法向上/向下滾動。即使拖動滾動條,按下鍵盤上的箭頭鍵也不起作用。但是,如果您將鼠標放在iframe上,然後使用鼠標滾輪/滑塊滾動,則滾動工作。
我只能在Ubuntu 12.04的Chrome v21.0.1180.89中進行測試。
請注意,上述情況僅在您使用散列'#'重新加載頁面時發生(僅向已加載的頁面添加'#'不會重新加載頁面)。
我想知道這個原因和一個可能的解決方案。
在Chromium中可重現版本25.0.1364.160 Ubuntu 12.04 – akkishore 2013-04-06 10:06:40
註釋掉「iframe.contentWindow.document.close();」線解決了這個問題,但爲什麼要「close()」導致這個問題呢? – akkishore 2013-04-06 10:12:47
更多洞察:改變底部:iframe樣式的0px到頂部:100px,我們可以從底部向上滾動頁面到頂部100px,但不能超過上面的值。此外,滾動只能通過點擊拖動滾動條來實現。顯然,iframe document.close()強制重新計算父頁面開始的位置。似乎是一個Chrome錯誤。 – akkishore 2013-04-06 10:32:00