ユーザースクリプトとほとんどのGreasemonkeyスクリプトは、サンドボックスで動作します。したがって、スクリプトはjQuery($
コードが使用しているオブジェクト)自体をロードするか、ターゲットページのバージョンのjQueryを使用するためにコードを挿入する必要があります。
クロスブラウザスクリプトでjQueryを使用する最良の方法は、この驚くほど優れたメソッドを使用することです。(^ _ ^)
したがって、スクリプトは次のようになります。
// ==UserScript==
// @name _Mouse-click detect
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_info
// ==/UserScript==
function GM_main ($) {
function removeSth () {
$('a').click (function () {
alert ("warning");
return false;
} );
}
removeSth ();
}
if (typeof GM_info !== "undefined") {
GM_main ($);
}
else {
add_jQuery (GM_main);
}
function add_jQuery (callbackFn, jqVersion) {
var jqVersion = jqVersion || "1.7.2";
var D = document;
var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
var scriptNode = D.createElement ('script');
scriptNode.src = 'http://ajax.googleapis.com/ajax/libs/jquery/'
+ jqVersion
+ '/jquery.min.js'
;
scriptNode.addEventListener ("load", function () {
var scriptNode = D.createElement ("script");
scriptNode.textContent =
'var gm_jQuery = jQuery.noConflict (true);\n'
+ '(' + callbackFn.toString () + ')(gm_jQuery);'
;
targ.appendChild (scriptNode);
}, false);
targ.appendChild (scriptNode);
}
ただし、 Firefox-GreasemonkeyとTampermonkeyの場合は、スクリプトを次のように簡略化できます。
// ==UserScript==
// @name _Mouse-click detect
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_info
// ==/UserScript==
function removeSth () {
$('a').click (function () {
alert ("warning");
return false;
} );
}
removeSth ();