我写了一个javascript代码,如果你正在浏览Firefox,如果调整窗口大小以弹出警告框。但是,我的知识还不足以看出我编写的代码中的错误在哪里。如果有人可以帮助我,我将非常感激。提前谢谢。
$('FirefoxChecker').ready(function() {
if (navigator.userAgent.indexOf("Firefox") > 0) && (window.onresize){
alert("Some text here");
};
});
答案 0 :(得分:4)
错误地格式化条件语句
$('FirefoxChecker').ready(function() {
if (navigator.userAgent.indexOf("Firefox") > 0 && window.onresize){
alert("Some text here");
}//; no semicolon
});
您可以在一个语句中包含任意数量的条件,例如
if( condition1 && conditio2 || condition3) { }
您的初始陈述是彼此断开的。
if( condition1) && (condition2) {} //is incorrect of course
YET!我们可以做这样的事情,它的作用是清理声明或使声明更准确。
//group1 //group2
if( (condition1 && condition2) || (condition3 && condition1) )
1 2 2 3 3 1
我在下面添加了数字,它们对应于它所属的每个括号。
正如其他人所说window.onresize
不是一个可测试的财产,但是你得到了这个,并希望能够继续前进。我们可以测试onresize
,但同样如此
if("onresize" in window) {}
答案 1 :(得分:3)
window.onresize
是一个不属性的事件。
修改:正如评论中 EasyBB 所述,onresize
是窗口的属性,但其初始值为null
,除非我们定义一个。它希望value
成为eventHandler
,在resize
事件发生时会调用{。}}。
试试这个:
window.onresize = function() {
if (navigator.userAgent.indexOf("Firefox") > 0) {
alert("Some text here");
}
};
要在完成resize
时调用某些内容,请尝试以下操作:
var timeOut;
window.onresize = function() {
clearTimeout(timeOut);
timeOut = setTimeout(function() {
if (navigator.userAgent.indexOf("Firefox") > 0) {
alert("Some text here");
}
}, 200);
};