我一直试图在我的计算机上将一些页面编辑为本地 htm 文件,但我遇到了这个问题,当父页面和 iframe 中的页面是本地页面时,使用 contentWindow 属性的函数不起作用文件。上传所有页面后,完全相同的代码可以正常工作,但不能作为本地文件。我只在 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);
}
最佳答案
事实证明,它是安全的东西,但没有办法简单地从设置菜单中将其关闭。关闭它的唯一方法(据我所知)(在 Windows 中)是通过键入文件路径并在命令中添加 --allow-file-access-from-files 从命令提示符窗口打开 Chrome线。这也适用于 Opera。
不幸的是,这不会永久关闭它,因此您每次要测试使用 contentWindow 属性的页面时都必须以这种方式打开浏览器。当我使用 Chrome 时,这很好用,因为我一直在我的计算机上打开它,但当我想在 Opera 中测试某些东西时,它有点烦人。也许其他人会发布使其永久化的方法,但现在必须这样做。
来源:
关于javascript - 为什么 document.getElementById(id).contentWindow 不适用于 Chrome 中的本地 htm 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582906/