创建Bookmarklet以打开页面并向其中添加一些脚本

时间:2018-02-02 08:22:33

标签: javascript jquery events bookmarklet inject

我需要建立一个链接来打开一个页面并在其中添加一些脚本。

这就是为什么我认为创建bookmarklet是最好的方法。例如,我想将用户重定向到某个页面,并在用户尝试关闭该标签时提醒用户。

我想使用的代码

javascript:(function(){ 
   window.location.replace("https://google.com");
   window.onbeforeunload = function (e) {
   e = e || window.event;

   // For IE and Firefox prior to version 4
   if (e) {
       e.returnValue = 'Sure?';
   }

   // For Safari
   return 'Sure?';
   };
})();

我创建了锚点:

<a href="javascript:(function(){window.location.replace("https://google.com"),window.onbeforeunload=function(e){return(e=e||window.event)&&(e.returnValue="Sure?"),"Sure?"};})();">Click</a>

有可能吗?而js代码有什么问题导致它不起作用?

1 个答案:

答案 0 :(得分:0)

不幸的是,这无法完成。当您单击页面时,bookmarklet的JS在该页面上运行。即使JS打开另一个页面,由于浏览器如何处理JS和安全性,也不会出现相同的JS可以继续在第二页上运行或控制第二页的情况。

您这里需要的是userscript。 Tampermonkey和类似的扩展允许您运行脚本,这些脚本可以修改内容并在不同的页面上运行。