【发布时间】:2013-09-26 00:54:09
【问题描述】:
我正在使用 jQuery 根据其内容动态更改 iframe 的大小,因此它不会显示滚动条。该脚本非常简单,在 IE9 中运行良好,但在 chrome 中没有任何反应,我添加了一个小“警报”,仅用于调试,我发现 var“cont_height”未在 chrome 中定义。
所有文件都在我的电脑里,包括在 iframe 中加载的页面,所以应该没有跨域问题。
chrome 中的调试工具给了我这个错误:“阻止源为“null”的帧访问源为“null”的帧。协议、域和端口必须匹配。
这里是代码
<script type="text/javascript" src="../js/jquery-1.10.2.min.js"> </script>
<script type="text/javascript">
$(document).ready(function () {
$('#mainframe').load(function () {
var cont_height = $(this).contents().height();
alert(cont_height);
$(this).height(cont_height);
});
});
</script>
我尝试使用“$(window).load”而不是文档就绪,但我认为这不是时间问题,由于权限或其他原因,我无法访问数据。我真的很感激你能给我的任何提示。解决方案也可以在 javascript 中使用。
【问题讨论】:
-
Chrome 在您没有网络服务器的情况下直接运行文件存在问题。不喜欢域是
null(因为没有域)。 -
我明白了,我可以设置一个假域名或其他什么吗?因为我将使用本地文件进行评估。
-
@FritsvanCampen 的意思是,如果您在文件系统上使用 (
file:///C/myFile.html) 浏览 html,它的来源为空,这会导致问题。您可以在本地 Web 服务器上运行它们,然后将其整理出来 (http://localhost/myFile.html)。如果您想要一个简单的 Web 服务器使用并且没有 IIS、Apache 或其他运行的东西,您可以安装 python 并在您的 html 文件所在的路径中运行python -m SimpleHTTPServer从您的机器上的命令行。它是一个非常轻量级的本地 Web 服务器。 -
我明白了,我会检查 python 网络服务器,这似乎是我正在寻找的轻量级选择。我还有一个问题悬而未决;这是针对大学项目的,我仍然不确定教授将如何测试页面,很可能他会直接从计算机上运行索引。那么,有什么办法,我的框架页面可以向我的主页发送一条消息说“嘿,这是我的身高”?,这真的会覆盖我所有的基础。感谢您的时间和奉献精神。
标签: javascript jquery html iframe