43

という名前のJavaScriptファイルがありますmain.js

内部main.jsでは、この現在のファイルの絶対パスを次のように取得したいと考えています。

http://server/app/main.js

http://server/app/script/main.js

絶対パスを取得する最速の方法は何ですか?

4

8 に答える 8

45

スクリプト コレクションは、次の場所で調査できます。

var scripts = document.getElementsByTagName("script");

返された配列の各要素について、その属性にscriptsアクセスできます。src

scripts現在実行中のインクルード ファイルは、常に配列の最後のファイルになります。でアクセスできますscripts[scripts.length-1]

もちろん、これは最初のコードの実行時にのみ機能し、たとえば最初のスクリプトが読み込まれた後に呼び出される関数内では役に立たないため、後で使用できる値が必要な場合は、変数に保存する必要があります。

于 2012-11-07T01:31:05.817 に答える
24

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>
于 2013-11-16T03:55:09.617 に答える
0
var path = document.location.pathname

現在のhtmlページを提供します。

現在のスクリプトを探す場合は、このサイトに記載されている方法を試してください。

http://bencarpenter.co.uk/javascript-path-to-the-current-script

于 2012-11-07T01:35:30.847 に答える