I made a greasemonkey script for a domain, Now how do I make it run only once? Like it starts every time the domain is accessed, I don't want that. How do I make it run only once and then like delete itself or make itself inactive?
Thanks.
Installing the Greasemonkey Extension. Click on the Firefox drop-down menu at the top left of the browser and select Add-ons. Type Greasemonkey into the add-ons search box at the top right of the browser. Find Greasemonkey in the list and click on Install.
GreaseMonkey is a Firefox extension that lets you run arbitrary Javascript code against selected web pages. What this means is that GreaseMonkey lets you change how other people's web pages look and how they function (but just in your own browser, of course).
If you want a script (or part of a script) to run only once, then you need to store a flag in non-volatile storage. A script cannot delete itself or turn itself off. But it can exit right away rather than run any other code.
To store things on a site-by-site (domain) basis, use localStorage. To store things on a script+namespace basis, use GM_setValue. Here's a basic script:
// ==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.");
}
Redefine the function as the last statement in the body:
function foo()
{
...
foo = function(){};
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With