【发布时间】:2010-12-22 21:07:07
【问题描述】:
我有一个 iframe,用于托管来自各种网站的网页。在 iframe 的 onload 处理程序中,我使用 jQuery 调整它的大小以适应内容:
height = iframe.find('body').attr('scrollHeight') + 100
这适用于大多数网站。但是,有一个网站有一个 window.onresize 事件,它会重新加载页面。因此,它会陷入无限循环,重新加载调整大小的页面,从而重新加载页面。
如何终止调整大小事件?我在 onload 处理程序中尝试了以下所有方法,但似乎都没有:
$('#webpage').resize(function() { alert("resizing"); return false});
iframe.resize(function() { alert("resizing"); return false});
window.onresize=null
window.onresize=function() { alert("resizing"); return false};
【问题讨论】:
-
什么样的愚蠢网站会在调整大小时重新加载? :S
-
Heh@thirtydot -- 我注意到 chrome 调用 resize 当您更改标签时,我很确定我什至发现它重新渲染页面?
-
@thirtydot:为 Netscape 4 编写的一篇文章,令人难忘的是,当您调整窗口大小时,它完全搞砸了 CSS。 Reload-on-resize 是一种常见的解决方法,尽管它通常只在浏览器嗅探上完成,例如
if (document.layers)。 -
@simon:“来自不同的网站”?您无法读取来自不同站点的页面高度,而不是您自己的句号。这将是一个跨站点脚本漏洞。
-
哦,是的,Netscape 时代对所有相关人员来说都是一个痛苦的世界。这些吐槽IE6的年轻人不知道自己搞得有多好! :-)
标签: javascript jquery iframe resize jquery-events