我在端口3000上运行了一个rails应用程序。有问题的页面有一个iframe,我需要根据iframe中加载的内容的高度调整它的大小。
<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0"
src="<%=invite_path(@invite.alias)%>"
onload="util.resize_iframe('ifrm_col3');"></iframe>
调整大小功能在这里:
util.resize_iframe = function(frame_id) {
var h = document.getElementById(frame_id).contentWindow.document.body.scrollHeight;
document.getElementById(frame_id).height = h;
}
加载iframe后,我在FireBug中看到了这个错误:
Error: Permission denied for <http://192.168.0.157> to get property Window.document from <http://192.168.0.157:3000>.
Source File: http://192.168.0.157:3000/javascripts/application.js?1268327481
Line: 84
为iframe呈现的HTML如下所示:
<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0"
src="/invite/my-invite-1"
onload="util.resize_iframe('ifrm_col3');"></iframe>
iframe的src是一个相对路径,但我不确定为什么不保留父页面的端口信息。这个问题有解决方法吗?
我尝试在父页面中创建一个函数并从iframe调用它,但遇到了同样的问题。
由于网站的额外功能,我需要坚持端口3000的rails应用程序。
任何建议表示赞赏。
答案 0 :(得分:2)
你确定<%=invite_path(@invite.alias)%>
确实输出了相对路径吗?沿途什么都没有解决(错误)? src
属性的实际输出结果如何?