【问题标题】:Getting all hyperlinks from page从页面获取所有超链接
【发布时间】:2020-02-29 14:16:35
【问题描述】:

我正在寻找一种从 DOM 中获取所有超链接的方法。并将其保存到数组或变量中。(用于 chrome 扩展)。

任何帮助将不胜感激。

谢谢

var myNodelist = document.querySelectorAll("a");
var URLList;
for (i = 0; i < myNodelist.length; i++) {
   URLList[i]=document.getElementById("a").innerHTML;
}

【问题讨论】:

  • URLList 是undefined ...你不能给它添加属性...试试var URLList = []
  • @RobinB - 看起来不太可能
  • 另外 ... getElementById('a') 将始终获取 id 为 a 的元素 - 与 myNodeList 无关 ...
  • 最后一件事...innerHTMLa 标签的显示内容,而不是链接本身

标签: javascript


【解决方案1】:

你可以得到这个如下。

var arr = [], l = document.links;
for(var i=0; i<l.length; i++) {
  arr.push(l[i].href);
}
console.log(arr);
<a href="demo1.html">Hello</a>
<a href="demo1.html">Hello</a>
<a href="demo1.html">Hello</a>

参考:https://stackoverflow.com/a/3871370/10971575

【讨论】:

  • 或者,作为单行:var URLList = Array.from(document.links, a =&gt; a.href);
【解决方案2】:

你可以这样做

var myNodelist = document.querySelectorAll("a");
var URLList = [];
for (var i = 0; i < myNodelist.length; i++) {
  if (myNodelist[i].href) {
    URLList.push(myNodelist[i].href);
  }
}
console.log(URLList)

【讨论】:

【解决方案3】:

请检查以下sn-p
使用 java 脚本获取所有链接作为已验证的解决方案 最快的解决方案

var HyperlinkArray = document.getElementsByTagName('a');

for(var i = 0; i< HyperlinkArray.length; i++){
  console.log(HyperlinkArray[i].href);//List of Hyperlink
}

例子:

var HyperlinkArray = document.getElementsByTagName('a');

for(var i = 0; i< HyperlinkArray.length; i++){
  console.log(HyperlinkArray[i].href);//List of Hyperlink
}
<a href="https://twitter.com/stackoverflow">twitter</a><br>    
<a href="https://scicomp.stackexchange.com">scicomp</a><br>
<a href="https://biology.stackexchange.com">biology</a><br>
<a href="https://stackapps.com">stackapps</a><br>
<a href="https://mathoverflow.net">mathoverflow</a><br>

【讨论】:

  • 这种方法没有考虑area elements
  • 请说明您的要求@PeterSeliger
  • 超文本引用不仅仅由具有href 属性的锚元素表示。我的评论提供了指向另一个元素的链接,该元素也能够表示链接。因此,您的方法不能提供完全通用的解决方案。另一方面document.links 已经足够了。它尽可能基本......它是“DOM-Level-2”。此 HTMLCollection 是一个实时集合,专门公开具有/具有 href 属性的锚和/或区域元素。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2014-01-21
  • 2017-04-17
  • 2016-11-18
  • 2013-02-23
  • 1970-01-01
相关资源
最近更新 更多