我希望有人告诉我为什么取消按钮会将我重定向到Youtube,而不是取消操作。
function link(){
var r = confirm("Are you leaving?");
if (r = true) {
a.link("http://www.youtube.com");}
else {
return true;}
}
<a href="http://www.youtube.com" onclick="link()">Youtube</a>
答案 0 :(得分:2)
由于省略了一个等号,您可以在此r
设置为true
:
if (r = true) {
只需将其更改为:
if (r == true) {
或
if (r === true) {
或只是
if (r) {
答案 1 :(得分:2)
function link(){
var r = confirm("Are you leaving?");
// if user clicks ok he'll be redirected to youtube
// as "r" will be truthy
if (r) { // this means user clicked ok
return a.link("http://www.youtube.com");
}
else {
return false; // and this means user clicked cancel so he'll not be redirected so this needs to be set to false
}
}
confirm
将返回true或false,但在您的代码中,您将真实地归为r
,因此它将无法正常工作。
正如我在上面的评论中所写,你需要将else语句中的return设置为false。
而不是使用a.link()
我建议你使用window.location
。
function link(){
var r = confirm("Are you leaving?");
if(r){
var redirect = window.location = "http://youtube.com";
return redirect;
}
else{
return false;
}
}
<a href="http://youtube.com" onclick="return link()">click here to be redirected!</a>