javascript - 未捕获的 SecurityError 端口问题 : Iframe resize

标签 javascript jquery iframe

我有一个呈现不同大小主体的 iframe 的父页面。但是,当在没有 www 的情况下导航到该站点时,您会收到以下错误:

599 未捕获的安全错误:阻止了来源为“http://example.com”的框架访问来源为“http://www.example.com”的框架。协议(protocol)、域和端口必须匹配。

表单在 iframe 中呈现,但它没有正确调整滚动高度的大小(我不能在 iframe 上使用任何滚动功能,并且需要朝向框架底部的额外空间)。

发生这种情况是因为页面上有以下 iframe/函数:

<iframe id="iframe1" src="http://www.example.com/virtual-directory" height="" width="300px" frameborder="0" onload="iframeLoaded()"></iframe>
<script>
   function iframeLoaded() {
     var iFrameID = document.getElementById('iframe1');
     if (iFrameID) {
         iFrameID.height = "";
         iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + 20 + "px";
     }
   }
</script>

我看了这篇帖子SecurityError: Blocked a frame with origin from accessing a cross-origin frame但我不确定在哪里实现该检查以使此调整大小正常运行而不引入安全风险。

最佳答案

如果您对父级和 iframe 都有完全控制权,您可能想在这里尝试 ConroyP 的答案:Resizing an iframe based on content .

(这是公认的答案)

它有点复杂,但对我有用。根据网络速度,它几乎可以是瞬时的。

唯一的缺点是,当您在其中更改页面时,它不会向上滚动 iframe 内容。

关于javascript - 未捕获的 SecurityError 端口问题 : Iframe resize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596218/

相关文章:

javascript - 删除重复行而不检查第一列的内容

javascript - 通过从下拉列表中选择,启用另一个下拉列表

javascript - 如何在 jQuery 中的文档就绪事件上自动调用函数

php - 在 PHP 中获取 Javascript 变量

javascript - 如何在 iframe 中获取 PDF 文档加载的高度

javascript - 图表师 : empty space after stacked bars

javascript - 如何使用 jQuery 将 div 置于页面中间并在调整窗口大小时保持其居中?

jquery - 如何在浏览器中禁用某些页面的打印选项

javascript - 如何在 React 中使用 jQuery 插件

javascript - 使用 jQuery/JavaScript 从 iframe 以事件屏幕为中心的 DIV