2010-12-14 25 views
6

我使用var win1 = open.window(...); var win2 = open.window(...);在Firefox中打开2个选项卡/窗口 - 现在我想比较两个DOM(文档对象模型)的相似性。 所以我有两个包含非常类似页面的DOM。这些页面具有相同的HTML,但执行了不同的JavaScript文件。如何比较两个DOM或DOM节点?

总的来说,我检查HTML和CSS是一样的:

var html1 = win1.document.body.innerHTML; 
var html2 = win2.document.body.innerHTML; 
if (html1 == html2) { ... } 
var css1 = win1.document.body.style.cssText 
var css2 = win2.document.body.style.cssText 
if (css1 == css2) { ... } 

但对比所有DOM节点似乎给了不好的结果:

var bodyNodes1 = win1.document.body.getElementsByTagName('*'); 
var bodyNodes2 = win2.document.body.getElementsByTagName('*'); 

bodyNodes1[123].innerHTML时并不需要类似bodyNodes2[123].innerHTML

哪些方法可用于比较DOM节点? 是否存在用于测试相似度页面的任何框架/库/脚本?

我非常感谢任何提示。 :-)

回答

7

我想你在找什么可以是:

isEqualNode:http://help.dottoro.com/ljlpvjmd.php
isSameNode:http://help.dottoro.com/ljqqqfft.php

希望这有助于。

+3

'isSameNode'已弃用。请参阅https://developer.mozilla.org/en-US/docs/DOM/Node.isSameNode以及http://stackoverflow.com/questions/3649321/is-there-a-way-to-check-if-if-两个dom元素是相等的 – 2012-11-07 12:23:04

+1

isEqualNode在IE上不起作用。我正在寻找一种方式。 – 2012-12-27 00:33:58