【发布时间】:2011-10-27 19:03:25
【问题描述】:
我正在开发一个 Rails 应用程序。一项功能是为客户提供预览 HTML 页面的能力。我将这些预览加载到 IFRAME 中,以便预览容器的 CSS/样式与预览本身的 CSS/样式分开。到目前为止,这工作得很好。
我遇到的一个问题是 IFRAME 加载后会自动调整其大小。只需通过 jQuery 将函数附加到 IFRAME 的 load 事件,我就可以在 Chrome 中很好地工作:
var show_preview = function() {
$("#preview-loading").hide();
$(this).show();
this.style.height = this.contentWindow.document.body.scrollHeight + "px";
return this.style.width = this.contentWindow.document.body.scrollWidth + "px";
}
$(function() {
return $("#preview_frame").load(function() {
show_preview();
});
});
但是,这在 IE 中效果不佳 - 页面首次加载时似乎不会触发该事件。
我正在尝试的一种解决方法是将函数直接分配给 IFRAME 的 onload 属性,如下所示:
<iframe onload="show_preview();" ...></iframe>
我在这里遇到的问题是,如果在我的 JavaScript 文件中定义了 show_preview() 函数,则 IFRAME 无法找到它。如果我提取函数并将其放在 IFRAME 上方的 SCRIPT 标记中,一切正常。
感谢任何帮助 - 确定我在做一些愚蠢的事情。
最大
【问题讨论】:
标签: javascript jquery ruby-on-rails iframe