Sim*_*ger 1 javascript jquery internet-explorer if-statement
以下JavaScript在除IE 7和8之外的所有浏览器中都能正常工作:
if (typeof django != 'undefined') {
console.log('Django admin loaded');
var jQuery = django.jQuery;
}
Run Code Online (Sandbox Code Playgroud)
此代码位于Django管理界面和公共页面中加载的JavaScript文件之上.Django的管理员加载自己的jQuery,所以我们最好使用那个...
但是,即使条件(typeof django != 'undefined')是,IE 7和8也会在此if语句中执行变量赋值false.同时,console.log()没有执行: - /删除var关键字,相同的代码在IE 7和8中也能很好地工作:
if (typeof django != 'undefined') {
console.log('Django admin loaded');
jQuery = django.jQuery;
}
Run Code Online (Sandbox Code Playgroud)
但为什么?这没有任何意义,是吗?
所有浏览器都会这样做.它被称为吊装.
function test() {
if( false) {
var abc;
}
alert(abc); // expect ReferenceError, get undefined
}
Run Code Online (Sandbox Code Playgroud)
既然你正在定义jQuery,你可能希望它作为一个全局变量,所以window.jQuery = django.jQuery应该做得很好.
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |