2011-07-19 10 views
0

可能性の重複:
How to get the location (src) of a javascript file?JavaScriptを含むホストのサーバのドメイン名を取得するには?

私は<script src="" >を使用して、第三者のサイトに含まれるJavaScriptを持っています。それは潜在的に私の別のドメイン/ホストのカップルでホストされます。スクリプトファイルを含むサーバーのドメイン名ではなく、スクリプトファイルを含むサーバーのドメイン名を取得する必要があります。ですから、ABC.COMでスクリプトファイルをホストし、ZYX.COMからスクリプトファイルを取得すると、ABC.COMを取得する必要があります。私はスクリプト内でドメイン名をハードコードすることができましたが、私のコードの単一バージョンを保ちます。

JavaScript内でこれを行う方法はありますか?

答えて

1

実行するホストに基づいてスクリプトファイルを動的に生成することをお勧めします。これがオプションでない場合は、DOMを解析し、正しいsrcプロパティを持つscriptタグを見つけて、ドメイン名を解析することができます。もちろん、異なる起源ドメインからの同じ名前のスクリプトもページに含まれていれば難しいでしょう。そうしないと、ファイルが参照されたURLを知ることができません。

var scripts = document.getElementsByTagName('script'); 
var src, i, domain; 

for (i=0; i<scripts.length; i++) { 
    src = scripts[i].src; 

    if (src.indexOf('myFile.js') != -1) { 
     domain = src.replace(/^https?\:\/\//i, '').split('/')[0]; 
     break; 
    } 
} 
+0

これは完全修飾URLである場合は、ドメイン= src.split( '/')を必要とする[2]ではなく[0]ドメインを取得します。 jsFiddle:http://jsfiddle.net/jfriend00/xH5jn/ – jfriend00

+0

を参照してください。プロトコルについて忘れてしまった。 –

+0

regexを追加してhttp(s)://を削除し、指定されたプロトコルの有無に関わらずケースをキャッチします。とにかくほとんどのブラウザが完全なURLを指定しているようですので、不要かもしれません。 –

関連する問題