という名前のJavaScriptファイルがありますmain.js
。
内部main.js
では、この現在のファイルの絶対パスを次のように取得したいと考えています。
http://server/app/main.js
http://server/app/script/main.js
絶対パスを取得する最速の方法は何ですか?
という名前のJavaScriptファイルがありますmain.js
。
内部main.js
では、この現在のファイルの絶対パスを次のように取得したいと考えています。
http://server/app/main.js
http://server/app/script/main.js
絶対パスを取得する最速の方法は何ですか?
スクリプト コレクションは、次の場所で調査できます。
var scripts = document.getElementsByTagName("script");
返された配列の各要素について、その属性にscripts
アクセスできます。src
scripts
現在実行中のインクルード ファイルは、常に配列の最後のファイルになります。でアクセスできますscripts[scripts.length-1]
。
もちろん、これは最初のコードの実行時にのみ機能し、たとえば最初のスクリプトが読み込まれた後に呼び出される関数内では役に立たないため、後で使用できる値が必要な場合は、変数に保存する必要があります。
JavaScript ファイルの現在のパス名を取得する
これを /tmp の下の apache ディレクトリに置き、test.html と呼びます。URLにアクセス
localhost/grader/test.html?blah=2#foobar
Javascript:
<html>
<script>
alert(location.pathname); // /tmp/test.html
alert(location.hostname); // localhost
alert(location.search); // ?blah=2
alert(document.URL); // http://localhost/tmp/test.html?blah=2#foobar
alert(location.href); // http://localhost/tmp/test.html?blah=2#foobar
alert(location.protocol); // http:
alert(location.host); // localhost
alert(location.origin); // http://localhost
alert(location.hash); // #foobar
</script>
</html>
場所の属性の詳細: http://www.w3schools.com/jsref/obj_location.asp
または、jquery がある場合:
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
</script>
<script>
$(location).attr('href'); // http://localhost/tmp/test.html?blah=2#foobar
$(location).attr('pathname'); // /tmp/test.html
</script>
</html>
var path = document.location.pathname
現在のhtmlページを提供します。
現在のスクリプトを探す場合は、このサイトに記載されている方法を試してください。
http://bencarpenter.co.uk/javascript-path-to-the-current-script