現在実行されているスクリプトファイル名のコードをbrowser_javascriptヒントで取得します。

WBOY
リリース: 2016-05-16 18:04:31
オリジナル
1205 人が閲覧しました

背景
同僚が質問しました。ブラウザに動的に挿入される JavaScript ファイルの現在のファイル名を取得する方法は?

スクリプト内でファイル名を取得する方法は、サーバーが出力する以外に次の 3 つしかありません。

ソリューション A
共通のソリューションは、ページ上の静的スクリプト タグの導入または単一の動的ロードにのみ使用できます。

コードをコピー コードは次のとおりです。

var scripts = document.getElementsByTagName('script ');
var filename = scripts.length -1].src;

複数のスクリプト タグの動的挿入:
コードをコピーします コードは次のとおりです。

loadScript('b.js?param=1')
loadScript('a.js? param=2')
loadScript('b.js?param=3')
loadScript('a.js?param=4')

/* 出力
a.js >>> ; http://localhost:800/io/a.js?param=4
a.js >>> =4
b.js >>> http://localhost:800/io/a.js?param=4
b.js >>> /io/a.js?param=4
*/

解決策 B
異常なタイプ、FireFox でのみ動作します:
コードをコピーします コードは次のとおりです:

try {
throw new Error()
}
catch(Exception); {
console.log (例外.fileName );
}

解決策 C
私の解決策、操作ソース コード:
コードをコピー コードは次のとおりです:

requireScript('a.js?' Date.now(),function(text,src) {
console.log('text :',text);
globalEval('(function() { nvar __filename = "' src '";n' text 'n;})();'); 🎜>})

ブラウザ出力:

コードをコピー コードは次のとおりです:
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート