我使用jQuery根据其内容更改了iframe的大小,因此它不显示滚动条。该脚本非常简单,它在IE9中工作正常,但在Chrome中没有任何反应,我添加了一个小的“警报”仅用于debbuging,并且我发现var“cont_height”未在Chrome中定义。iframe内容高度null 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>
我用“$(窗口).load”,而不是文件准备好尝试,但我不认为这是一个时机的问题,我不能够访问数据由于权限等原因。我会很感激你能给我的任何提示。解决方案也在javascript中。
Chrome可以直接运行文件,没有一个网络服务器的问题。它不喜欢这个域是'null'(因为没有域)。 – Halcyon
我明白了,我可以设置一个虚假的域名或者其他东西吗?,我会使用本地文件进行评估。 – Faito
@FritsvanCampen所说的是,如果你在文件系统上用('file:/// C/myFile.html')浏览你的html,它有一个空的原点并导致这个问题。您可以在本地Web服务器上运行这些服务器,然后将其排序('http:// localhost/myFile.html')。如果你想要一个简单的Web服务器来使用,并且没有IIS,Apache或其他的东西在运行,你可以安装python并在你的html文件所在的路径中运行'python -m SimpleHTTPServer' 。它是一个真正轻量级的本地Web服务器。 –