2011-11-10 27 views
20

Tôi có một trang HTML.Làm cách nào để bao gồm tệp JavaScript từ xa có điều kiện?

Trong đó, theo trình duyệt, tôi cần bao gồm tệp JavaScript riêng.

Làm cách nào có thể?

<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

có thể trùng lặp của [Bao gồm tệp JavaScript bên trong tệp JavaScript?] (Http://stackoverflow.com/questions/950087/include-javascript-file-inside-javascript-file) –

Trả lời

18

Và cuối cùng, nếu bạn đã sử dụng JQuery trong dự án của bạn và chỉ cần bỏ thẻ cho nó, bạn có thể sử dụng $.getScript

+0

Cảm ơn, hoạt động – Linto

6

Sử dụng conditional comments bạn chỉ thực hiện một số HTML trong IE.

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

Cảm ơn bạn đã nhận xét, bạn có thể giải thích bằng chi tiết – Linto

+0

Tôi nghĩ cú pháp sẽ như sau: ' '' không có nghĩa là-script '(xem http://msdn.microsoft.com/en-us/library/ms537512(v=vs. 85) .aspx) –

+0

Xem mã bổ sung – TJHeuvel

12

Đây là một cách, có thể không phải là tốt nhất.

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

+1

Tôi thích cách này là tốt nhất vì nó phù hợp ngay với các thẻ '

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> 

Tất nhiên, bạn cũng có thể chia các nhà điều hành ternary trên để theo ý thích của bạn ..

+0

tại sao 'regScript' trong dòng thứ 5? – vladkras

0

Tôi khuyên bạn nên sử dụng LAB.js hoặc YepNope (trình tải tập lệnh). Cả hai đều cố gắng hết sức để tải các tập lệnh bên ngoài một cách tốt nhất có thể.

Đối với một ví dụ, sử dụng YepNope, với hai điều kiện tải:

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> 

đơn giản và dễ dàng. 1 dòng cho mỗi tệp JS.

Các vấn đề liên quan