我正在尝试使用外部链接的确认方法。当您按下链接时,问题应该弹出,询问您是否要离开该网站?一切都按计划进行,除了您离开网站,无论您点击哪个按钮。
function warning(){
var warning = document.getElementsByClassName("external");
warning.onclick = confirm('Do you want to leave');
if(warning){
alert("Leaving site");
}
else{
return false;
alert("Staying on site");
}
}
以上显然不起作用,你是怎么做到的?
答案 0 :(得分:3)
warning.onclick = confirm('Do you want to leave');
立即调用confirm()
,并将结果(true或false)分配给onclick
(这是毫无意义的)。
相反,您需要创建一个调用confirm()
并返回结果的匿名函数。
答案 1 :(得分:1)
以上显然不起作用
是。代码中有无数错误:
warning
与该函数同名 - 不良做法会导致混淆warning.onclick
将无效,因为getElementsByClassName
返回NodeList,您只能将侦听器附加到单个元素= confirm('Do you want to leave');
直接指定调用confirm
的结果。您当然希望分配一个函数,它将在事件发生时调用if(warning)
将永远为真,因为即使空的NodeList也是真实的return false; alert()
- 永远不会执行警报。 return
语句会立即跳出该函数。你怎么做的?
完全没有。阻碍用户做他想做的事的弹出窗口(他想在点击链接时离开网站)是不可取的。这是非常糟糕的UI设计。
答案 2 :(得分:0)
jQuery对话框非常适合这个添加代码
warning.onclick = function()
{
var msg = "do you want to leave this site: ";
$( "#dialog-confirm" ).html(msg);
$( "#dialog-confirm" ).dialog({
resizable: false,
title: 'title',
height:300,
modal: true,
buttons: {
"Ok": function() {
$( this ).dialog( "close" );
window.location.href = url;
},
"Cancel": function() {
$( this ).dialog( "close" );
}
}
});
}
答案 3 :(得分:-1)
改为:
var boolOK = confirm('Do you want to leave');
if (boolOK == true)
warning.onclick;
这里有更多解释 http://www.javascriptkit.com/javatutors/alert2.shtml