1. ホーム
  2. javascript

現在実行中のjavascriptコードのファイルパスを取得する方法

2023-09-24 12:51:38

質問

私はC言語のようなことをしようとしています #include "filename.c" またはPHPの include(dirname(__FILE__)."filename.php") を使用することができますが、javascriptではできません。jsファイルが読み込まれたURL(例えば、タグのsrc属性に与えられたURL)を取得できれば、これができることは分かっています。javascriptがそれを知る方法はあるのでしょうか?

あるいは、同じドメインから動的に javascript を読み込む良い方法はありますか (ドメインを明確に知ることなく)?たとえば、2 つの同じサーバー (QA と本番) があり、それらの URL ドメインが明らかに異なっているとします。次のような方法はありますか? include("myLib.js"); ここで、myLib.js は、それをロードするファイルのドメインからロードされるのでしょうか?

少しわかりにくい表現になってしまいましたが、すみません。

どのように解決するのですか?

スクリプトの中で

var scripts = document.getElementsByTagName("script"),
    src = scripts[scripts.length-1].src;

ブラウザはスクリプトを順番に読み込み、実行するので、スクリプトが実行されている間、そのスクリプトが含まれているドキュメントは、ページ上の最後の要素として、あなたのスクリプト要素を確実に持っているため、これは機能します。このコードはもちろんスクリプトに対して「グローバル」でなければなりません。 src をどこかに保存し、後で使用できるようにしてください。グローバル変数が漏れないように、ラップしてください。

(function() { ... })();