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