Javascript Iframe不会触发调整大小事件
经过3天的研究和反复试验,我无法获取iframe或其内容来触发调整大小事件,因此无法调用我的调整大小函数。如果我使用…触发器(“调整大小”);若要手动触发调整大小事件,将调用my resize函数并运行。加载到iframe中的页面位于同一域中(Javascript Iframe不会触发调整大小事件,javascript,jquery,iframe,event-handling,resize,Javascript,Jquery,Iframe,Event Handling,Resize,经过3天的研究和反复试验,我无法获取iframe或其内容来触发调整大小事件,因此无法调用我的调整大小函数。如果我使用…触发器(“调整大小”);若要手动触发调整大小事件,将调用my resize函数并运行。加载到iframe中的页面位于同一域中(http://localhost:81/curlExample/)作为包含iframe的页面。最终,iframe中的页面将由php curl方法提供,但我想先让它工作 *******更新******** 如何在调整浏览器窗口大小时触发调整大小事件,从而导致
http://localhost:81/curlExample/
)作为包含iframe的页面。最终,iframe中的页面将由php curl方法提供,但我想先让它工作
*******更新********
如何在调整浏览器窗口大小时触发调整大小事件,从而导致iframe调整其大小
谢谢你的帮助 使用iframe页面
$(文档).ready(函数(){
函数setResize()
{
window.alert(“你好”);
var iframeRef=document.getElementById('displayframe');
$(iframeRef).on(“resize”,function()){
var-xExp=0;
警告(“已触发调整事件大小”);
});
}
$('#displayframe').load(函数()
{
警报(“来自iFrame的Hello.Load事件已触发”);
var myStallTime=setTimeout(setResize,3000);
});
});
你好
您的浏览器不支持iFrame
元素不会触发调整大小事件,如
或
。您必须从窗口
获取此事件。由于iframe文档与父文档来自同一来源,因此可以访问其contentWindow
和任何其他属性
那么,试试这个:
var iframeWin = document.getElementById('displayframe').contentWindow;
$(iframeWin).on('resize', function(){ ... });
我只用了DOM的
嗯,你为什么不在当前窗口上收听“调整大小”节目?不太清楚什么是有效的或无效的,或者目标是什么,或者说,2年后,我们在浏览器中安装了resize Observer,您可以在一年后观察单个元素上的resize事件,resize Observer仍然只在一个浏览器上受支持,而不是100%多填充。从版本68 Safari v13开始,Firefox将支持此功能,和边缘v76。
var iframeWin = document.getElementById('displayframe').contentWindow;
iframeWin.addEventListener('resize', function(){ ... });