javascript - 为什么 document.getElementById(id).contentWindow 不适用于 Chrome 中的本地 htm 文件?

标签 javascript google-chrome iframe resize autoresize

我一直试图在我的计算机上将一些页面编辑为本地 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 中测试某些东西时,它有点烦人。也许其他人会发布使其永久化的方法,但现在必须这样做。

来源:

Is it likely that future releases of Chrome support contentWindow/contentDocument when iFrame loads a local html file from local html file?

http://www.chrome-allow-file-access-from-file.com/

关于javascript - 为什么 document.getElementById(id).contentWindow 不适用于 Chrome 中的本地 htm 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582906/

相关文章:

javascript - 为什么在音频标签内使用源标签会阻止 loadeddata 事件触发?

javascript - 使用查询参数转换到状态

CSS IE 兼容性

html - 如何使用 CSS 为 Chrome 61 更改 HTML 背景?

javascript - IFrame 在 Firefox 中工作但在 IE 中不工作

javascript - ReactJS 的这段代码中的曲线括号有什么问题

javascript - 输入框日期选择器不适用于 jQuery DataTables 的所有页面

google-chrome - 如何清除浏览器的缓存

javascript - 如何将YouTube视频嵌入到自定义播放列表中,并使它们循环播放?

javascript - 如何提取iframe的重定向url?