1

私は現在、スタイルシートといくつかの小さなスクリプトをサイトに追加する Safari 拡張機能に取り組んでいます。これらのスクリプトの 1 つを html に挿入する必要があるため、別のスクリプトを実行しています...

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = 'http://mysite.com/myscript.js';
document.querySelector('head').appendChild(myScriptElement);

...これを頭に追加します:

<script type="text/javascript" src="http://mysite.com/myscript.js"></script>

私が抱えている問題は、スクリプトが拡張フォルダーではなく自分のサイトから読み込まれることです。拡張フォルダーにアクセスするには、ソースとして何を挿入する必要がありますか? 標準の start-and-end-script-extension-function を使用してスクリプトを挿入できません。

javascriptが苦手なので、どなたか教えていただけると助かります!:)

4

1 に答える 1

2

を使用safari.extension.baseURIして、拡張フォルダーへのパスを取得できます。したがって、挿入されたスクリプトで次のようなものを使用します。

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = safari.extension.baseURI+'myscript.js';
document.querySelector('head').appendChild(myScriptElement);

挿入されたスクリプトはページ上のすべての iframe にも挿入されることに注意してくださいif (window == window.top)

于 2013-03-17T16:37:20.673 に答える