背景
同僚が質問しました。ブラウザに動的に挿入される 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;})();'); 🎜>})
ブラウザ出力:
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31