溶液我發現/修改:
在頁面
其中包含的IFRAME:
<script type="text/javascript">
function resizeCrossDomainIframe(id, other_domain) {
var iframe = document.getElementById(id);
window.addEventListener('message', function(event) {
if (event.origin !== other_domain) return;
if (isNaN(event.data)) return;
var height = parseInt(event.data) + 32;
iframe.height = height + "px";
}, false);
}
在iframe代碼
:
<iframe id="my_iframe" onload="resizeCrossDomainIframe('my_iframe', '**whatever domain your iframe content is on**');"></iframe>
用於連續調整大小,我把這種在頁面包含的iframe:
<script>
var interval = setInterval(function(){
resizeCrossDomainIframe('my_iframe', '**whatever domain your iframe content is on**');
}, 100);
</script>
的IFRAME內容頁面上:
<script>
window.onload = function() {
window.parent.postMessage(document.body.scrollHeight, '**whatever domain your iframe containing page is on**');
}
</script>
這對於連續調整大小:
<script>
var interval2 = setInterval(function(){
window.parent.postMessage(document.body.scrollHeight, '**whatever domain your iframe containing page is on**');
}, 100);
</script>
CORRECTION :不需要第一個間隔腳本,因爲每次發送消息時,eventlistener都會執行該函數。它只會導致緩慢
我以爲你問題是PostMessage在FireFox 3.6中不起作用? – user2684310
我以爲是。但似乎是這樣 –