Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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动态扫描呈现的元素?_Javascript_Dom - Fatal编程技术网

使用JavaScript动态扫描呈现的元素?

使用JavaScript动态扫描呈现的元素?,javascript,dom,Javascript,Dom,如果我把这个问题表述得很糟糕,我会提前道歉;我对网络编码相当陌生 我的目标是使用JavaScript扫描网页并确定是否存在特定字符串。这里的困难在于页面是动态呈现的,因此有问题的字符串将永远不会出现在源代码中 如果字符串在页面上呈现,它会出现在DOM中吗?如果我扫描DOM,我会在那里找到它吗?如果是的话,有什么特别的考虑吗 本质上,我正在寻找一种简单的方法来扫描页面上呈现的文本,而不是源代码。这一定是可能的,因为我的浏览器的“在页面上查找”功能可以在动态呈现的页面上工作。是否有办法通过浏览器AP

如果我把这个问题表述得很糟糕,我会提前道歉;我对网络编码相当陌生

我的目标是使用JavaScript扫描网页并确定是否存在特定字符串。这里的困难在于页面是动态呈现的,因此有问题的字符串将永远不会出现在源代码中

如果字符串在页面上呈现,它会出现在DOM中吗?如果我扫描DOM,我会在那里找到它吗?如果是的话,有什么特别的考虑吗

本质上,我正在寻找一种简单的方法来扫描页面上呈现的文本,而不是源代码。这一定是可能的,因为我的浏览器的“在页面上查找”功能可以在动态呈现的页面上工作。是否有办法通过浏览器API本身访问页面上呈现的元素?(我正在使用Chrome。)

试试这个:

var stringToSearchFor = 'foobar';
var searchThisString = document.body.innerText || document.body.textContent;
var found = (searchThisString.indexOf(stringToSearchFor) >= 0);
这将从页面中提取文本,忽略所有标记,然后对结果字符串进行简单扫描


在某些版本的FireFox中,这将包括内联脚本标记的内容。

是的,这可以通过DOM实现。感谢您的回复。即使字符串不在源代码中,该操作是否也有效?我知道此方法将从源代码中删除标记,但即使这样,我的字符串仍不会出现在剩余文本中。是的,这将从DOM中获取当前文本,包括加载页面后的任何修改。啊,我明白了。因此,此函数将从页面代码生成的HTML中删除标记。有道理。非常感谢你!别忘了给答案投票,或者用复选标记把它标记为被接受的答案。嗯……事实上,我在这个问题上遇到了麻烦。无论我在哪个页面上运行脚本(即使是普通的HTML页面),搜索结果都是错误的。到目前为止,我唯一能让它返回True的方法是将搜索字符串更改为“…想法”?