我一直在尝试制作一个扩展,通过查看 iframe 源来获取网络上视频播放器的源,但事实证明,许多 iframe 都将 iframe 嵌套在实际视频所在的位置,或者有时甚至是另一个 iframe 深度。我一直在尝试更深入地研究像这样的 js:
var iframe = document.getElementsByTagName("iframe");
var nestedframes = iframe.getElementsByTagName("iframe");
像这样:
var iframe = document.getElementsByTagName("iframe");
var innerDoc = iframe.contentWindow.webbody.innerHTML;
var nestedframes = innerDoc.getElementsByTagName("iframe");
但他们返回此错误:contentscript.js:6 Uncaught TypeError: iframe.getElementsByTagName is not a function.
如果有人有任何想法,我们将不胜感激。
最佳答案
getElementsByTagName()
方法获取文档上具有指定标签名称的所有元素。这意味着它为您提供了一个元素列表。
所以你应该迭代它或选择单个元素来调用另一个 DOM 方法。 (注意[0])
var iframe = document.getElementsByTagName("iframe")[0];
var nestedframes = iframe.getElementsByTagName("iframe");
关于javascript - 获取嵌套在另一个 iframe chrome 扩展中的 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47822794/