Javascript Bookmarklet复制URI / URL

时间:2018-03-14 01:14:43

标签: javascript bookmarklet

我有以下书签:

javascript:findlink=document.getElementsByClassName(%22download_link%22)[2].href;window.open('https://myfiledrive.com/users/files/add?url='+findlink,'_blank');void(0);

示例:

<a class="download_link" href="example.com/pdf1.pdf">
<a class="download_link" href="example.com/pdf2.pdf">
<a class="download_link" href="example.com/pdf3.pdf">

基本上,它搜索当前活动的页面,对于具有类“download_link”的标记的第三次迭代,并将其存储在变量“findink”中,

然后加载'https://myfiledrive.com/users/files/add?url='+ findlink

在上面的示例中,它应该加载:

https://myfiledrive.com/users/files/add?url=example.com/pdf3.pdf

但最终发生的事情就是加载:

https://myfiledrive.com/users/files/add?url=example.com/pdf3.pdf?url=example.com/pdf3.pdf

  • 所以基本上它是重复的url =

我做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

url参数不应重复。您没有附加findlink或其他任何内容。您可以尝试下面的代码段,它与您发布的完全相同。

Chrome会阻止弹出窗口,但如果您阅读了错误消息,则表示没有重复:

  

在新窗口中阻止打开“https://myfiledrive.com/users/files/add?url=https://stacksnippets.net/example.com/pdf3.pdf”,因为请求是在沙盒框架中进行的,其中“allow-popups”权限未设置。

无论我点击多少次,

url都只在那里。

<a class="download_link" href="example.com/pdf1.pdf">1</a>
<a class="download_link" href="example.com/pdf2.pdf">2</a>
<a class="download_link" href="example.com/pdf3.pdf">3</a>

<a href="javascript:findlink=document.getElementsByClassName(%22download_link%22)[2].href;window.open('https://myfiledrive.com/users/files/add?url='+findlink,'_blank');void(0);">download</a>