すでにjQueryが含まれているページに小さなユーザースクリプトを書きたいです。Chrome開発者コンソールから$オブジェクトにアクセスできますが、ユーザースクリプトからはアクセスできません。jQuery||とだけ表示されます。$ || window.jQueryは未定義です。
PS:ユーザースクリプトは拡張機能としてインストールされます。
すでにjQueryが含まれているページに小さなユーザースクリプトを書きたいです。Chrome開発者コンソールから$オブジェクトにアクセスできますが、ユーザースクリプトからはアクセスできません。jQuery||とだけ表示されます。$ || window.jQueryは未定義です。
PS:ユーザースクリプトは拡張機能としてインストールされます。
ユーザースクリプトは、ページと同じコンテキストでは実行されません。ページのjavascript環境にアクセスするには、次のように実行する必要があります。
var execute = function (body) {
if(typeof body === "function") { body = "(" + body + ")();"; }
var el = document.createElement("script");
el.textContent = body;
document.body.appendChild(el);
return el;
};
execute(function() {
$.noop();
}
ボーナス:CDNから外部スクリプトをロードすることもできます。
var load = function (src, on_load, on_error) {
var el = document.createElement("script");
el.setAttribute("src", src);
if (on_load != null) { el.addEventListener("load", on_load); }
if (on_error != null) { el.addEventListener("error", on_error); }
document.body.appendChild(el);
return el;
};
load("//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function () {
execute(function(){$.noop();});
});
ユーザースクリプト自体にjQueryを含める必要があります。ページにjQueryがあるかどうかは関係ありません。
更新:私の善良なブロック(頭を上げてくれてありがとう!)は、前のリンクがChrome拡張機能には役に立たなかったと私に知らせたので、Chrome用のjQueryを含める方法を知らせる他のリンクをいくつか見つけました(追加する必要があります)マニフェスト.jsonファイル)
Chrome拡張機能のJqueryhttp
://blog.michael-forster.de/2009/08/using-jquery-to-build-google-chrome.html
そしてmanifest.jsonに関する詳細情報
http://developer.chrome.com/extensions/manifest.html