我有一个HTML页面。
在那里,根据浏览器,我需要包含一个单独的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>
答案 0 :(得分:19)
最后,如果您已经在项目中使用了JQuery并且只是遗漏了标记,那么您可以使用$.getScript
答案 1 :(得分:13)
这是一种方式,可能不是最好的方式。
<script type="text/javascript">
if(navigator.appName == 'Microsoft Internet Explorer')
{
document.write("<script tag here>");
}
else
{
document.write("<other script tag here>");
}
答案 2 :(得分:6)
使用conditional comments只在IE中执行一些HTML。
<!--[if IE]>
<script src='iescript.js'></script>
<![endif]-->
答案 3 :(得分:4)
<script type="text/javascript">
var src = navigator.appName == "Microsoft Internet Explorer" ? "one.js" : "two.js";
var script = document.createElement("script");
script.setAttribute("src", src);
document.getElementsByTagName("head")[0].appendChild(script);
</script>
当然,您也可以根据自己的喜好将三元运算符拆分为......
答案 4 :(得分:2)
如果你正在使用jQuery,你可以使用getScript()
答案 5 :(得分:0)
您可以使用http://jagregory.com/writings/using-ies-conditional-comments-for-targeted-javascript/
上列出的条件评论例如,如果您想要定位IE版本7及以下版本,您可以:
<!--[if lt IE 7]>
<script type="text/javascript" src="/js/one.js"></script>
<![endif]-->
答案 6 :(得分:0)
我建议您使用LAB.js或YepNope(脚本加载器)。两者都尽可能以最佳方式加载外部脚本。
例如,使用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'
});
答案 7 :(得分:-1)
<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>
简单易行。每个JS文件1行。