2012-03-26 8 views
2

サーバからコンテンツを取得してネクタイに追加するための小さなuserscriptを作成しています。
サイトにはjQueryがあります。@requireの代わりにサイトのjQueryを使用するにはどうすればよいですか(Chromeはこれを現在サポートしていないため)。対象のページでjQueryの既存のコピーにアクセスする

+0

あなたは 'unsafeWindow.jQuery'使用することはできますか?落とし穴[ここ](http://wiki.greasespot.net/UnsafeWindow) –

+0

いいえ、 'unsafeWindow'はChrome *コンテンツスクリプト*に提供されていますが、同じように動作しません。標準DOM以外のJSオブジェクトへのアクセスは許可されません。 –

+0

も参照してください:[Greasemonkey @requireはChromeで動作しません](http://stackoverflow.com/questions/9791489/greasemonkey-require-does-not-work-in-chrome)と[JavaScriptをページのスコープに挿入するにはChrome拡張機能](http://stackoverflow.com/a/9517879/938089)を参照してください。 –

答えて

4

使用このようなコードではjQueryの既存コピー:

function main() { 
    /*--- Put all of your code here. 
     Use jquery with $ or however the target page uses it. 
    */ 
} 

function addJS_Node (text, s_URL, funcToRun) { 
    var D         = document; 
    var scriptNode       = D.createElement ('script'); 
    scriptNode.type       = "text/javascript"; 
    if (text)  scriptNode.textContent = text; 
    if (s_URL)  scriptNode.src   = s_URL; 
    if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()'; 

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement; 
    targ.appendChild (scriptNode); 
} 

addJS_Node (null, null, main);