【发布时间】:2021-01-14 09:20:29
【问题描述】:
我是 javascript 和编程新手,我正在尝试理解要在我的项目中实现的这段代码
function url_redirect(url){
var X = setTimeout(function(){
window.location.replace(url);
return true;
},300);
if( window.location = url ){
clearTimeout(X);
return true;
} else {
if( window.location.href = url ){
clearTimeout(X);
return true;
}else{
clearTimeout(X);
window.location.replace(url);
return true;
}
}
return false;
};
来源 - https://stackoverflow.com/a/53706698。 我无法弄清楚这其中的逻辑。为什么在 if 语句中使用单个 '='? if(window.location = url) 是什么意思?
【问题讨论】:
-
单个 = 表示将值分配给变量。当您将值分配给变量时,它会返回值本身。因此 if(window.location=url) 将首先返回将位置分配给 url。如果 url 不为空,它将进入 if 语句,因为分配返回分配给它的值。但我不确定它是否正确
-
@Vikrant 一般来说,是的,但在这种特殊情况下,
if (window.location = url)会立即重定向。代码中应该有比较运算符而不是赋值,即它不是“工作解决方案”。 -
你真正想在这里做什么/你想解决的问题是什么?这可能会产生一个您可能会发现对您更有用/为您提供更好信息的答案。
标签: javascript dom-events window.location