没有比 Firefox 的 Greasemonkey 或 Chrome 的自动运行用户 JS 的用户脚本更简单的替代方案了。您可以编写自己的扩展/附加组件,但没有太多意义。
如果您不关心 GM 和用户脚本提供的超棒额外功能,并且总是希望“(获取)几行 JS 并在某个站点的页面加载后(运行)它们”——忽略 iframe,那么只需使用以下代码作为所有脚本的基本模板:
// ==UserScript==
// @name _Base template for simple, cross-browser, JS injection.
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @run-at document-start
// ==/UserScript==
if (window.top != window.self) //-- Don't run on frames or iframes.
return;
function scriptMain () {
// PUT ALL OF YOUR CODE HERE, INCLUDING ANY FUNCTIONS YOU CREATE.
console.log ("Hello World!");
}
window.addEventListener ("load", scriptMainLoader, false);
function scriptMainLoader () {
addJS_Node (null, null, scriptMain);
}
function addJS_Node (text, s_URL, funcToRun) {
var D = document;
var scriptNode = D.createElement ('script');
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()';
var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
targ.appendChild (scriptNode);
}
请注意,这@run-at document-start
是必需的(对于 Chrome),但您的代码仍会在文档加载时触发。