Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与不一致DOM树中HTML节点的唯一标识符匹配_Javascript_Html_Algorithm_Dom_Treemap - Fatal编程技术网

Javascript 与不一致DOM树中HTML节点的唯一标识符匹配

Javascript 与不一致DOM树中HTML节点的唯一标识符匹配,javascript,html,algorithm,dom,treemap,Javascript,Html,Algorithm,Dom,Treemap,以下是挑战: 我有两个浏览器,每个浏览器呈现一个“几乎相同”的DOM树。 区别可能在于类名,表示浏览器类型,如: <div class="square ff"></div> <div class="square IE"></div> 第一个可能出现在firefox上,第二个可能出现在IE浏览器上。 这些div(除了它们的符号)是相同的,因此需要接收相同的ID 可能还隐含着其他差异:不同的位置->不同的XPath、从DOM中删除的元素、浏览器本

以下是挑战:

我有两个浏览器,每个浏览器呈现一个“几乎相同”的DOM树。 区别可能在于类名,表示浏览器类型,如:

<div class="square ff"></div>
<div class="square IE"></div>

第一个可能出现在firefox上,第二个可能出现在IE浏览器上。 这些div(除了它们的符号)是相同的,因此需要接收相同的ID

可能还隐含着其他差异:不同的位置->不同的XPath、从DOM中删除的元素、浏览器本身的扩展;干扰DOM等

理论上,我想获取它们的所有属性,包括:标记名、属性、父属性等。。并创建一个唯一标识符,该标识符将在不同的DOM中保持一致

最好的解决方案是,我不必将任何ID映射彼此进行比较,尽管这是可能的,在这种情况下,我希望匹配百分比是ID的一部分(即2374-75,其中2374是ID,75是匹配%)

第二个挑战是在另一侧找到元素X

我将根据您的评论更新此问题, 谢谢
Mike。

我刚才创建了一些小JS书签,用于计算DOM树中的位置,这可能会引起您的兴趣;但是,如果节点具有不同的Xpath(如您所说),它将非常失败。您可以在这里查看:(注意:如果您遵循此链接,请将
getLink
书签拖到浏览器并单击它,应该突出显示“单击块”字样)这是一个非常复杂的解决方案,但是xpath确实是一个问题。我已经找到了一种非常复杂的方法来实现这种映射,但是,由于它的复杂性,我不喜欢它。我会继续找的,谢谢!