Javascript 书签复制 URI/URL

标签 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= '+查找链接

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

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=

我做错了什么?谢谢。

最佳答案

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

Chrome 将阻止弹出窗口,但如果您阅读错误消息,则不会出现重复情况:

Blocked opening 'https://myfiledrive.com/users/files/add?url=https://stacksnippets.net/example.com/pdf3.pdf' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set.

无论我点击多少次,

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>

关于Javascript 书签复制 URI/URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268342/

相关文章:

javascript - useEffect 触发并运行打印语句但没有实际的 axios.post 调用运行 reactjs

javascript - 使用 webpack、bookmarklet-loader、style 和 css-loader 创建书签

javascript - 无法使用书签运行外部 javascript

javascript - iPad safari 书签 - 为什么需要点击 2 次?

JavaScript:4 个异步函数在继续之前按顺序等待彼此完成?

javascript - 试图在 javascript 调用中隐藏带有内容的 div

javascript - 对象函数 () { } 没有方法 'my method'

javascript - 为什么这个小书签不能转换为用户脚本?

javascript - 提交表单后关闭书签

javascript - 使用 CanvasJS 动态确定要显示的饼图数量并在单个页面上显示每个饼图