如何有条件地包含远程JavaScript文件
How to include a remote JavaScript file conditionally?
我有一个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>
最后,如果您已经在项目中使用JQuery,并且只是省略了它的标记,那么您可以使用$.getScript
这里有一种方法,可能不是最好的。
<script type="text/javascript">
if(navigator.appName == 'Microsoft Internet Explorer')
{
document.write("<script tag here>");
}
else
{
document.write("<other script tag here>");
}
<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>
当然,你也可以根据自己的喜好拆分上面的三元运算符。。。
使用条件注释只在IE中执行一些HTML。
<!--[if IE]>
<script src='iescript.js'></script>
<![endif]-->
如果使用jQuery,可以使用getScript((
http://api.jquery.com/jQuery.getScript/
您可以使用上列出的条件注释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]-->
我建议您使用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'
});
<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行。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件