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 次 |
最近记录: |