Javascript:使用dom加载页面匹配

时间:2016-01-05 08:13:37

标签: javascript dom

我正尝试使用Chrome console从谷歌搜索结果中获取所有链接。

首先,我想获得dom加载源。我试过下面的代码。

var source = document.documentElement.innerHTML;

现在,当我在控制台源中键入source时,它会显示正确的dom加载源。但是如果我运行alert(source);它会显示默认的html源页面。

问题是当我在代码

下运行时
source.match(/class="r"><a href="(.*?)"/);

它返回null,因为变量source在dom加载之前有源代码。

2 个答案:

答案 0 :(得分:3)

您可以使用DOM API(即getElementsByTagName)查找页面中的所有a标记。看看:

var anchors = document.getElementsByTagName('A');
var matchingHrefs = Array.prototype.slice.call(anchors).filter(function(a) {
  return a.className == 'r';
}).map(function(a) {
  return a.href;
});
<a href="#first" class="r">A</a>
<a href="#second" class="d">B</a>
<a href="#third" class="r">C</a>

Array.prototype.slice.call来电变为node list into regular array

答案 1 :(得分:1)

您可能需要在正则表达式中添加/g标记才能全局匹配。

像这样: yourHtml.match(/href="([^"]*")/g)