Web ページで実行中の JavaScript ファイルの絶対 URL を取得する汎用関数をまとめてみました。
基本的に、次のようなものを呼び出すことができます。
getScriptName(function(url) {
console.log(url);
// http://www.example.com/myExternalJsFile.js
});
ページ上の外部 JavaScript ファイル内で、それを使って何かを行うことができます (<script>
たとえば、それをロードしたタグを見つけるなど)。
私がテストしたほぼすべてのブラウザー (Firefox、Chrome、Safari、少なくとも Opera v10、および IE 8) でうまく動作します。
ただし、IE 6 および 7 では失敗するようです。コールバック関数は実行されますが、取得された名前は JavaScript ファイルではなく、メインの HTML ページへの URL です。例を続けると、getScriptName
次のパラメーターを使用してコールバックが呼び出されます。http://www.example.com/index.html
だから私が本当に求めているのは、現在の JavaScript ファイルの URL を取得する他の方法があるかどうかだけです (これは IE 6 および 7 固有のハッカーである可能性があります)。前もって感謝します!
編集:また、これはすべての場合に機能するとは限らないため、お勧めしません:
var scripts = document.getElementsByTagName("script");
return scripts[scripts.length-1].src;
動的に作成されたスクリプト タグ (ページの最後に配置されていない可能性があります)、別名遅延読み込みの場合に機能するようにしたいと思います。