我一直在尝试将某些页面编辑为计算机上的本地htm文件,但是我遇到了这个问题,使用contentWindow属性的函数在父页面和iframe中的页面是本地文件。上传所有页面后,完全相同的代码可以正常工作,但不能作为本地文件。我只在Chrome和Opera中遇到过这个问题。在Firefox和Safari甚至Internet Explorer中,ContentWindow可以正常使用本地文件。
这非常烦人,因为我在我正在处理的页面中调整了动态iframe的大小,并且我不想每次要测试它们时都要重新上传所有页面在Chrome浏览器中,这是我的主浏览器。
Chrome(和Opera)中是否存在导致此问题的某种安全设置,如果可以,则会被禁用?
代码只是:
function resizeIframe(iframeName) {
document.getElementById(iframeName).style.height = '1000px';
newHeight = document.getElementById(iframeName).contentWindow.document.body.scrollHeight;
setTimeout(function () {
document.getElementById(iframeName).style.height = newHeight + 'px';
}, 10);
}
答案 0 :(得分:0)
事实证明, 是安全的东西,但是没有办法简单地从设置菜单中关闭它。关闭它(在Windows中)的唯一方法是在命令提示符窗口中打开Chrome,方法是键入文件路径并添加--allow-file-access-from-files到命令行。这也适用于Opera。
不幸的是,这并没有永久关闭它,因此每次要测试使用contentWindow属性的页面时,都必须以这种方式打开浏览器。当我使用Chrome时,这可以正常运行,因为无论如何我一直在我的电脑上打开它,但是当我想在Opera中测试一些东西时,它有点烦人。也许其他人会发布一种永久性的方式,但现在必须这样做。
来源: