javascript,遍历html树:iframe

时间:2012-03-28 14:54:47

标签: javascript

我正在编写一个浏览器扩展/加载项,遍历网页的完整html树。本质上,我使用node.childNodes获取每个节点的子节点,然后递归调用遍历函数。这很有效,直到我遇到iframe。即使iFrame具有内容,node.childNodes也始终将iframe显示为具有0个子节点。

我已经看到了如何处理此问题的示例(例如http://pietschsoft.com/post/2004/08/12/JavaScript-How-to-get-value-from-nested-form-in-iframe.aspx),但这些示例假设我知道iframe的名称或ID。但是,iframe可能没有名称或ID,只有src。

2 个答案:

答案 0 :(得分:2)

您可以通过检查是否node.tagName == "IFRAME"确定节点是否为iframe。

如果是,那么您可以查看node.childNodes,而不是查找node.contentDocument.documentElement

应该相当简单。

答案 1 :(得分:0)

如果要遍历iFrame中的所有元素,则需要访问iFrame的document对象。 伪代码

if(currentElement == iframe) {
    TraverseDOM(currentElement.contentDocument.documentElement);
}

注意:如果iFrame的内容来自不同的域,您将无法访问其内容。请参阅Same Origin Policy