iFame javascript上的MutationObserver

时间:2019-05-30 21:38:00

标签: javascript html dom iframe mutation-observers

我有一个包含源www.abc/main.html的iframe

<iframe id="my-iframe" src="http://www.abc/main.html"></iframe>

abc / main.html导入并执行一些js文件。 我想使用MutationObserver来获取要导入的js文件的名称。

var observer = new MutationObserver(function (mutations) {
            mutations.forEach(function (mutation) {
                [].filter.call(mutation.addedNodes, function (node) {
                    return node.nodeName == 'IFRAME';
                }).forEach(function (node) {
                    node.addEventListener('load', function (e) {
                        console.log('loaded', node.src);
                    });
                });
            });
        });
observer.observe(document.body, { childList: true, subtree: true });

这就是我正在使用的。引用:SO answer

但是我无法获取js文件的名称。是否与iframe源上设置的CSP有关?

注意:iframe内容与父文档的来源不同。

1 个答案:

答案 0 :(得分:1)

MutationObserver仅观察您自己的文档。

如果没有远程站点的明确CORS支持,则完全不可能观察或与其他来源的框架进行交互。