2011-11-10 11 views
20

私はHTMLページを持っています。条件付きでリモートJavaScriptファイルを含めるには?

ブラウザでは、別のJavaScriptファイルを含める必要があります。

どうすれば可能ですか?

<script type="text/javascript"> 
if(navigator.appName == 'Microsoft Internet Explorer') 
{ 
//here i need to include one.js 
} 
else 
{ 
//here i need to include two.js 
} 

</script> 
+1

[JavaScriptファイル内にJavaScriptファイルを含める?](http://stackoverflow.com/questions/950087/include-javascript-file-inside-javascript-file) –

答えて

18

そして、あなたはすでにあなたのプロジェクトでjQueryのを使用して、ちょうどそれのためのタグを残している場合、あなたはもちろん$.getScript

+0

ありがとうございます、それは – Linto

6

conditional commentsを使用すると、IEでのみ一部のHTMLを実行します。

<!--[if IE]> 
<script src='iescript.js'></script> 
<![endif]--> 
+0

コメントありがとうございます詳細 – Linto

+0

私はその構文が次のようになると思います: ' '' non-ie-script '(http://msdn.microsoft.com/en-us/library/ms537512(v=vs。 85).aspx) –

+0

追加コードを参照 – TJHeuvel

12

これは、おそらく最良ではない方法です。

<script type="text/javascript"> 
if(navigator.appName == 'Microsoft Internet Explorer') 
{ 
    document.write("<script tag here>"); 
} 
else 
{ 
    document.write("<other script tag here>"); 
} 

+1

私は他の '

0

を使用することができますIEのバージョン7以下をターゲットにしたいと考えていました。

<!--[if lt IE 7]> 
<script type="text/javascript" src="/js/one.js"></script> 
<![endif]--> 
1
<script type="text/javascript"> 
var src = navigator.appName == "Microsoft Internet Explorer" ? "one.js" : "two.js"; 

var script = document.createElement("script"); 
regScript.setAttribute("src", src); 
document.getElementsByTagName("head")[0].appendChild(script); 
</script> 

を使用することができ、最終的に、あなたはまたに上記三項演算子を分割することができあなたの好み...

+0

なぜ5th行で 'regScript'ですか? – vladkras

0

LAB.jsまたはYepNope(スクリプトローダー)を使用することをお勧めします。両方とも、可能な限り最良の方法で外部スクリプトを読み込むことに大いに努力しています。

var agent = navigator.userAgent; 
yepnope({ 
    test : /(msie) ([\w.]+)/.test(agent), // internet explorer 
    yep : 'ie.js', 
    nope : 'other-script-if-you-want.js' 
}); 
yepnope({ 
    test : /(mozilla)(?:.*? rv:([\w.]+))?/.test(agent), // firefox 
    yep : 'firefox.js' 
}); 
0
<script type="text/javascript"> 
    if(condition===true){ 
    document.write(unescape(
     '%3Cscript src="file1.js"%3E%3C/script%3E'+ 
     '%3Cscript src="file2.js"%3E%3C/script%3E' 
    )); 
    } 
</script> 

簡便な2つの条件負荷で、YepNopeを用いて例えば

、。 JSファイルごとに1行。

関連する問題