某个网站的网页均在表集中构建。基本上,每组表都是从脚本构建的。
我在该站点中选中的任何网页的DOM中大约有80个table
标签(在DOM中的一个页面中我计数了77个表)。一个非常古老的网站。
一些元素的孩子(td
)在自己内部包含一些表。
我得出的结论是,由于两个原因,该网站中的网页是由脚本构建的:
1)其中任何一个基本上都无法在网页中使用任何表元素:
document.querySelector("#mySelector").style.display = "none";
document.querySelector(".mySelector").style.display = "none";
document.querySelector(" /* LONG-CSS-PATH-TAKEN-FROM-DEVTOOL (via "Copy CSS path") */ ").style.display = "none";
这种操作通常会输出:
TypeError:document.queryselector(...)为null
2)在dom的不同部分之前有脚本段。
我的问题:
我的问题由以下两个问题组成:
1)如何防止加载特定的脚本来创建一组表格?(整个网页的某个部分)?
- 我之所
2)可能还有另一个原因,而不是"从脚本中加载html",这导致元素不以传统方式定位?
注意:
我从控制台运行此脚本。
我还尝试在
window.onload
事件处理程序中使用GreaseMonKey运行它。
如果您可以在dom中看到元素,则可以查询它。
您看到的行为的一种可能解释是,查询后,元素被加载到DOM中。除了找出正在加载脚本并从那里拿走的脚本外,您还没有提供足够的线索来提供任何实用建议。
。另一个可能的解释是表格在iFrames中。针对顶帧的DOM进行查询不会返回其他框架的DOM中的元素。您可能会在DevTools Elements Pane中看到它们,因为它显示了所有DOMS,但是您必须在查询它之前获得对正确帧的文档的引用。
最后但绝对不是最简单的问题... wat?那里发生了什么?数百张桌子?这是没有意义的,即使按照90年代后期使用表进行布局的标准也是一个好主意。
您的策略不应该隐藏它们,而是要完全摆脱它们。考虑逃跑。