首页 > 解决方案 > SecurityError:当访问 iFrame 的信息时,访问跨域对象上的属性“文档”的权限被拒绝

问题描述

我在另一个域上有一个带有 iFrame 的 html 页面。

<iframe id="myframe"src="https://www.example.com" height="1000" width=100%>

我想获取该网站的一些信息并在我的 html 页面上使用它们。例如,我想提取标签并将其设置为我的 html 的标题。

我使用了在 W3School 上找到的这段代码

var iframe = document.getElementById("myframe");
    var y = (iframe.contentWindow || iframe.contentDocument);
    if (y.document)y = y.document;  
    var strHeader = y.body.getElementsByClassName("header");

我用 IDE HelloWebFree(类似于 notepad++)写了进去。当我在 IDE 中尝试我的代码时,它工作正常。但是当我尝试使用 safari、Google Chrome 或 Firefox 打开它时,它不起作用。

我得到错误:“ SecurityError: Permission denied to access property "document" on cross-origin object”。

我不需要对 iframe 内容进行任何更改,我只想阅读它并在我自己的 html 中使用它。所以我不明白为什么这是一个安全问题。为什么它在我的 IDE 中运行而不是在浏览器中运行?

我已经阅读了很多关于这个问题的帖子,但大多数帖子已经超过 5 年,不再适用。有人有想法吗?

标签: javascripthtmliframexss

解决方案


在浏览器中发生这种情况的原因是为了保护用户的安全。

它可以保护用户免受任何随机网站从他的 Facebook、银行网站或其他任何网站读取他的个人信息。

如果您想从网站访问公共信息,那么我建议在后端抓取它。


推荐阅读