我有一个包含源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内容与父文档的来源不同。
答案 0 :(得分:1)
MutationObserver仅观察您自己的文档。
如果没有远程站点的明确CORS支持,则完全不可能观察或与其他来源的框架进行交互。