我为域制作了一个greasemonkey 脚本,现在如何让它只运行一次?就像每次访问域时都会启动一样,我不希望这样。我如何让它只运行一次,然后像删除自己或使自己处于非活动状态?
谢谢。
我为域制作了一个greasemonkey 脚本,现在如何让它只运行一次?就像每次访问域时都会启动一样,我不希望这样。我如何让它只运行一次,然后像删除自己或使自己处于非活动状态?
谢谢。
如果您希望脚本(或脚本的一部分)只运行一次,那么您需要在非易失性存储中存储一个标志。脚本不能自行删除或自行关闭。但它可以立即退出,而不是运行任何其他代码。
要逐个站点(域)存储内容,请使用localStorage。要在脚本+命名空间的基础上存储东西,请使用GM_setValue。这是一个基本脚本:
// ==UserScript==
// @name _Run a GM script one-time only
// @namespace _pc
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
var alreadyRun = GM_getValue ("alreadyRun", false);
if ( ! alreadyRun) {
GM_setValue ("alreadyRun", true);
alert ("This part of the script will run exactly once per install.");
}
将函数重新定义为主体中的最后一条语句:
function foo()
{
...
foo = function(){};
}