选择从脚本加载的HTML元素



某个网站的网页均在表集中构建。基本上,每组表都是从脚本构建的。

我在该站点中选中的任何网页的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

,所有3个示例在其他网站上都很好。

2)在dom的不同部分之前有脚本段。


我的问题:

我的问题由以下两个问题组成:

1)如何防止加载特定的脚本来创建一组表格?(整个网页的某个部分)?

  • 我之所

2)可能还有另一个原因,而不是"从脚本中加载html",这导致元素不以传统方式定位?

注意:

  1. 我从控制台运行此脚本。

  2. 我还尝试在window.onload事件处理程序中使用GreaseMonKey运行它。

如果您可以在dom中看到元素,则可以查询它。

您看到的行为的一种可能解释是,查询后,元素被加载到DOM中。除了找出正在加载脚本并从那里拿走的脚本外,您还没有提供足够的线索来提供任何实用建议。

另一个可能的解释是表格在iFrames中。针对顶帧的DOM进行查询不会返回其他框架的DOM中的元素。您可能会在DevTools Elements Pane中看到它们,因为它显示了所有DOMS,但是您必须在查询它之前获得对正确帧的文档的引用。

最后但绝对不是最简单的问题... wat?那里发生了什么?数百张桌子?这是没有意义的,即使按照90年代后期使用表进行布局的标准也是一个好主意。

您的策略不应该隐藏它们,而是要完全摆脱它们。考虑逃跑。

相关内容

  • 没有找到相关文章

最新更新