我有一個使用window.postMessage與它的父級(在其他域上)通信的Iframe。在父窗口上的 我有一個resize方法,可以從iframe中調用。JS - 基於它的內容調整一個Iframe的大小,不使用超時
我想將代碼添加到將監視內容維度更改的iframe中,並在需要時調用resize方法,而不使用超時...是否有「事件方式」來執行此操作?
更新 我用純JS,並想監視內部文件
我有一個使用window.postMessage與它的父級(在其他域上)通信的Iframe。在父窗口上的 我有一個resize方法,可以從iframe中調用。JS - 基於它的內容調整一個Iframe的大小,不使用超時
我想將代碼添加到將監視內容維度更改的iframe中,並在需要時調用resize方法,而不使用超時...是否有「事件方式」來執行此操作?
更新 我用純JS,並想監視內部文件
使用jQuery的滾動寬度和高度,你可能引發父窗口的事件:
parent.$("iframe").trigger("resize");
而在父窗口中,您會聽到此事件:
$("iframe").on("resize", function(){
// do the magic
});
'parent。$'將不起作用,如果兩個幀位於不同的域上,由於跨域安全限制。 – loganfsmyth
調用方法不是問題,問題是如何知道內容何時更改,而不使用間隔來檢查它 –
像italo.nascimento說,用jQuery做到這一點:
$(window).resize(function() {
var winW = $(this).width(),
winH = $(this).height();
$("iframe").css({
width: winW,
height: winH
});
}).resize();
但是他希望根據iframe內容調整大小。所以iframe本身應該告訴主頁面何時調整DOM元素的大小[
好的,我必須接受! – yckart
@ italo.nascimento你是完全正確的,問題是何時告訴主頁面調整大小 –
你可以訪問框架內的網頁加載的源JS補充呢? – loganfsmyth
我有權訪問iframe和父窗口 –
這是什麼導致iframe更改大小?圖片加載?內容改變?通常,您只需將偵聽器綁定到每個事件。 – loganfsmyth