我需要编写代码,将网页中的所有 href 链接放入一个数组中。这是我到目前为止所拥有的:
var array = [];
var links = document.links;
for(var i=0; i<links.length; i++) {
array.push(links[i].href);
}
但是,这在 Gmail 收件箱之类的页面上不起作用,因为某些链接位于 iframe 中。我怎样才能获得所有 链接,包括 iframe 内的链接?
另外,这是一个 google chrome 扩展。在 list 中,我将 all_frames 设置为 true - 这有什么不同吗?
谢谢
最佳答案
记住一点
- 文档.链接
- 文档.图像
- 文件.表格
- 文档.表单[0].元素
- document.getElementsByName()
- document.getElementsByClassName()
- document.getElementsByTagName()
是对 DOM 对象的实时查询,因此在 forLoops 中它可能会显着减慢您的执行速度(因为 i < links.length 是每个 for 循环的查询),如果您像这样检查数组长度:
var array = [];
var links = document.getElementsByTagName("a");
for(var i=0; i<links.length; i++) {
array.push(links[i].href);
}
你最好这样做:
var array = [];
var links = document.getElementsByTagName("a");
for(var i=0, max=links.length; i<max; i++) {
array.push(links[i].href);
}
关于javascript - 获取 DOM 中的所有 href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8922899/