我正在开发一个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标记中,一切正常。
感谢任何帮助 - 确保我做的事情很糟糕。
最高
答案 0 :(得分:2)
将您的函数附加到窗口对象,然后它将在您的html代码中显示:
window.show_preview = function() { ... }