I get a ReferenceError in the following userscript code:
// ==UserScript==
// @name ...
// @namespace ...
// @description ...
// @include ...
// @grant GM_xmlhttpRequest
// ==/UserScript==
console.log(GM_info);
try
{
console.log(GM_xmlhttpRequest({ method: "GET", url: "http://google.ca/", synchronous: true }).readyState);
}
catch (e)
{
console.log(e);
}
...
It first logs GM_info
successfully, then logs the ReferenceError. (I'm using Firefox/Firebug.)
ReferenceError: GM_xmlhttpRequest is not defined
Why do I get this error?
I had the same problem, and what fixed it for me was adding this at the top:
// @grant GM_xmlhttpRequest
Reinstalling the script fixed the problem. I didn't need to restart Firefox, but it may be helpful for other people. Brock's answer has helpful debugging tips for problems like this.
Since the news version (GM 4.0) this error happened when you use GM_xmlhttpRequest
because GM_xmlhttpRequest
was replaced by : GM.xmlHttpRequest
.
The new code is :
// ==UserScript==
// @name ...
// @namespace ...
// @description ...
// @include ...
// @grant GM.xmlHttpRequest
// ==/UserScript==
console.log(GM_info);
try
{
console.log(GM.xmlHttpRequest({ method: "GET", url: "http://google.ca/", synchronous: true }).readyState);
}
catch (e)
{
console.log(e);
}
//...
Greasemonkey: "GM_xmlhttpRequest is not defined" with the new update
来源:https://stackoverflow.com/questions/16736320/referenceerror-gm-xmlhttprequest-is-not-defined