1

スクリプトを追加する手順は知っていますdocument.createElement('script')が、ローカル ファイルでも同じですか? 私はいくつかfunction.toString()の呼び出しを使用してみましたが、それは非常に非効率的であり、個別に追加する必要があるファイルを保存し、ローダーを用意して、それを 1 日呼び出します。何か案は?これは、完全に拡張機能に変換したいユーザー スクリプトのすべてです。ありがとう。

4

1 に答える 1

1

<script> srcをローカルファイルに設定すると機能します。例えば:

addJS_Node (null, 'file:///D:/SAMPLE_DIR/YOUR_CODE.js');

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;
    //--- Don't error check here. if DOM not available, should throw error.
    targ.appendChild (scriptNode);
}

重要: ファイルをローカル ファイル システムからロードする必要があるため、ほとんどの場合、フル パスを指定する必要があります。ブラウザーは、相対パスを現在の Web ページ(または<base>タグ値)からの相対パスとして解釈します。





Re:

これはすべて、拡張機能に完全に変換したいユーザースクリプト用です

拡張機能の場合、ほとんどの場合、JS をターゲット ページに挿入するのではなく、「分離された世界」のスコープに保持する方が適切です。

拡張機能の場合、または場合によっては専用の Chrome ユーザー スクリプトの場合でも、マニフェストを使用してそのスコープにファイルを簡単に含めることができます。EG(ここから):

{
    "name": "My extension",
    ... 
    "content_scripts": [
        {
            "matches":  ["http://www.google.com/*"],
            "css":      ["mystyles.css"],
            "js":       ["jquery.js", "myscript.js"]
        }
    ],
    ... 
}
于 2012-06-09T19:53:07.790 に答える