相关疑难解决方法(0)

SecurityError:阻止具有原点的帧访问跨源帧

我正在<iframe>我的HTML页面中加载一个并尝试使用Javascript访问其中的元素,但是当我尝试执行我的代码时,我收到以下错误:

SecurityError: Blocked a frame with origin "http://www.<domain>.com" from accessing a cross-origin frame.
Run Code Online (Sandbox Code Playgroud)

你能帮我找一个解决方案,以便我可以访问框架中的元素吗?

我正在使用此代码进行测试,但徒劳无功:

$(document).ready(function() {
    var iframeWindow = document.getElementById("my-iframe-id").contentWindow;

    iframeWindow.addEventListener("load", function() {
        var doc = iframe.contentDocument || iframe.contentWindow.document;
        var target = doc.getElementById("my-target-id");

        target.innerHTML = "Found it!";
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript iframe jquery same-origin-policy

487
推荐指数
4
解决办法
82万
查看次数

229
推荐指数
4
解决办法
31万
查看次数

Document.querySelector 返回 null,直到使用 DevTools 检查元素

我正在尝试创建一个 Chrome 扩展程序,用于查找 Facebook 上的“赞助”帖子并将其删除。

在执行此操作时,我注意到 Google Chrome 在 Facebook.com 上的这种相当奇怪的行为,其中对现有元素(在我的情况下)的某些类型的查询document.querySelector('a[href*="/ads/about"]');将返回null。但是,如果您“检查”-单击它们(使用检查工具或 CTRL+SHIFT+C),它们将显示在 DevTools 中,然后在控制台中再次运行查询将显示该元素。无需对页面进行任何滚动、移动、调整大小或执行任何操作。

使用上面的说明可以轻松复制这一点,但为了清楚起见,我制作了以下视频来准确显示奇怪的行为:

https://streamable.com/mxsf86

这是某种 dom 查询缓存问题吗?你有遇到过类似的事情吗?谢谢

编辑:问题现在已减少为查询返回,null直到元素悬停为止,并且它不再是与 DevTools 相关的问题。

html javascript dom google-chrome

8
推荐指数
1
解决办法
3281
查看次数