Javascript Userscript捕获页面上的所有URL并显示在新的div层中

Javascript Userscript捕获页面上的所有URL并显示在新的div层中,javascript,jquery,html,userscripts,Javascript,Jquery,Html,Userscripts,我是JavaScript新手,如果问题太明显,请原谅 我正在编写一个greasemonkey脚本来捕获网页上的所有HREF,并将它们显示为一个新的div。 以下是我一直在使用的代码: // ==UserScript== // @name GetURLs // @namespace xyz // @description Collect all the URLs present on the page // @include https://www.google.com/

我是JavaScript新手,如果问题太明显,请原谅

我正在编写一个greasemonkey脚本来捕获网页上的所有HREF,并将它们显示为一个新的div。 以下是我一直在使用的代码:

// ==UserScript==
// @name        GetURLs
// @namespace   xyz
// @description Collect all the URLs present on the page
// @include     https://www.google.com/*
// @include     https://www.google.co.in/*
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @version     1
// @grant       none
// ==/UserScript==

var snapshotResults = document.evaluate('//a/@href',document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
//var div = '<div style="width:100%">';
var div = '<div style="background-color:green;width:300px;height:100px;position:relative;top:-220px;left:120px;z-index:83666;">'
window.alert("First message\n"+ snapshotResults.snapshotItem(1).textContent);

for(var i = 0 ; i<snapshotResults.snapshotLength ; i++)
  {
    var href = snapshotResults.snapshotItem(i).textContent ;
    href = href + '<br/>';
    div += href ;
  }

div += '</div>';
alert("After for loop\n"+ div);
$('body').append(div);
/==UserScript==
//@name geturl
//@namespace xyz
//@description收集页面上的所有URL
//@包括https://www.google.com/*
//@包括https://www.google.co.in/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
//@version 1
//@grant none
//==/UserScript==
var snapshotResults=document.evaluate('//a/@href',document,null,XPathResult.UNORDERED\节点\快照\类型,null);
//var div='';
var div=''
window.alert(“第一条消息\n”+快照结果.snapshotItem(1).textContent);
对于(var i=0;i
标记

但是在body标记的末尾没有创建和附加div层

有人能帮我吗? 另外,我用来在网页上创建和显示新div层的过程是最佳的,还是其他常用的方法

我的最终目标是捕获网页上的所有URL,并将它们显示为同一页面上的一个单独的新覆盖层,类似于下面问题的答案中所做的操作:

这里提到的脚本对我来说工作得非常好(经过一些修改),而不需要使用Sleep monkey的unsafeWindow功能。 因此,如果在我的案例中选择使用不安全窗口,是否有人可以建议一种不使用不安全窗口的方法(因为我一直在阅读“油脂猴”文档,不安全窗口有一些漏洞)


注意:无法发布所获得结果的快照,因为在问题中发布图像至少需要10个声誉,目前我没有。

你的
for
循环中有一个拼写错误:
快照结果。SnapshotLength
。谢谢。这很尴尬。我会在删除拼写错误后编辑问题。我想你现在的问题在于,你将
高度设置为
100px
,但将其
顶部设置为
-120px
。它完全在窗口之外。@Phylogenesis这也是我的第一个想法。我在那里尝试了各种组合。我还使用了注释掉的代码(就在初始化div变量之前),但没有用。然后我不太确定。我将您的代码复制/粘贴到一个用户脚本中,它对我有效(在
style
属性中将
top
left
设置为
0
)。