是否可以使用 Greasemonkey 脚本将 JS 脚本从其他站点添加到页面,以便它们运行?
问问题
9333 次
2 回答
7
您可以简单地创建一个脚本元素并将其添加到文档中
// ==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 脚本,我推荐第一种方法,因为只有你的脚本是从站点封装的。
于 2013-01-13T00:06:00.597 回答
0
是的,您可以这样做,例如:
let script = document.createElement('script');
script.src = "http://example.com/somescript.js";
document.body.appendChild(script); // execute the script
document.body.removeChild(script);
于 2013-01-12T23:51:56.140 回答