使用Greasemonkey脚本将其他站点的javascript添加到页面中

Using a Greasemonkey script to add javascript, from other sites, to a page

本文关键字:添加 javascript 脚本 Greasemonkey 其他 站点 使用      更新时间:2023-09-26

是否可以使用Greasemonkey脚本将其他站点的JS脚本添加到页面中,以便它们运行?

您可以简单地创建一个脚本元素并将其添加到文档

// ==UserScript==
// @name       My Fancy New Userscript
// @description  enter something useful
// @match      http://*/*
// ==/UserScript==
(function () {
    var scriptElement = document.createElement( "script" );
    scriptElement.type = "text/javascript";
    scriptElement.src = "url to your script";
    document.body.appendChild( scriptElement );
})();

如果您只是希望脚本运行,那么这就足够了。如果它是一个像jQuery这样的库,你想在你的用户脚本中使用它就会变得很棘手。我知道有两种方法:

  • 一种是使用greasemonkey的require标签。
  • 另一个需要相同的脚本元素的创建,如上面所示,但你需要等待它加载,所以scriptElement.onload = function () {}是需要的,你必须使用unsafeWindow从你的库访问变量。

如果这是一个纯greasemonkey脚本,我建议使用第一种方法,因为只有第一个脚本是从站点封装的。

是的,你可以这样做,例如:

let script = document.createElement('script');
script.src = "http://example.com/somescript.js";
document.body.appendChild(script);  // execute the script
document.body.removeChild(script);