Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离开现场时使用确认方法_Javascript_Html_Hyperlink_Confirm - Fatal编程技术网

Javascript 离开现场时使用确认方法

Javascript 离开现场时使用确认方法,javascript,html,hyperlink,confirm,Javascript,Html,Hyperlink,Confirm,我希望在点击外部链接时弹出确认消息。尽管它不想成功。当我点击外部链接时,我没有得到确认弹出窗口。有什么解决办法吗 Javascript代码 function warning(){ var warning = confirm('Do you want to leave'); if(!warning){ alert("Staying on site"); return false; } else { alert("Leaving site");

我希望在点击外部链接时弹出确认消息。尽管它不想成功。当我点击外部链接时,我没有得到确认弹出窗口。有什么解决办法吗

Javascript代码

function warning(){
    var warning = confirm('Do you want to leave');
    if(!warning){
    alert("Staying on site");
    return false;
    } else {
        alert("Leaving site");
    return true;
    }
}

function init() {
    var warn = document.getElementsByTagName("ul");
    for(i=0; i<warn.length; i++)
        if(warn[i].className == "meny"){
            var link = document.getElementsByTagName("li");
    }
    for(i=0; i<link.length; i++){
        var links = document.getElementsByTagName("a");
        if(links[i].className == "external"){
            links.onclick = warning;
        }
    }
}
函数警告(){
var warning=确认(“您想离开吗”);
如果(!警告){
警惕(“留在现场”);
返回false;
}否则{
警报(“离开现场”);
返回true;
}
}
函数init(){
var warn=document.getElementsByTagName(“ul”);

对于(i=0;i此行为只能通过处理
onbeforeunload
事件来完成。您的处理程序应返回一个字符串,这是向用户显示的消息。一个简单的示例:

window.onbeforeunload = function () {
    return 'are you sure you want to leave?';  
};

此行为只能通过处理
onbeforeunload
事件来完成。处理程序应返回一个字符串,这是向用户显示的消息。一个简单的示例:

window.onbeforeunload = function () {
    return 'are you sure you want to leave?';  
};

我建议您稍微修改一下代码:

function init() {
    var warn = document.getElementsByTagName("ul");
    for(i=0; i<warn.length; i++)
        if(warn[i].className == "meny"){
            var link = document.getElementsByTagName("li");
    }
    var links = document.getElementsByTagName("a");
    for(i=0; i<link.length; i++){
        if(links[i].className == "external"){
            links.external = true;
        }
    }
}
请注意,这一行:

    var links = document.getElementsByTagName("a");

必须在循环之外。

我建议您稍微修改一下代码:

function init() {
    var warn = document.getElementsByTagName("ul");
    for(i=0; i<warn.length; i++)
        if(warn[i].className == "meny"){
            var link = document.getElementsByTagName("li");
    }
    var links = document.getElementsByTagName("a");
    for(i=0; i<link.length; i++){
        if(links[i].className == "external"){
            links.external = true;
        }
    }
}
请注意,这一行:

    var links = document.getElementsByTagName("a");

必须在循环之外。

通常,您需要删除href并将其替换为“#”,然后使用js手动将它们发送到那里。这是唯一可靠的方法,可以在href之前弹出。对于编辑器窗口和其他内容,您还可以在关闭时将其激活。对于非内部网页,这不是一个好的做法,不过,一般来说,你需要删除href并将其替换为“#”,然后使用js手动将它们发送到那里。这是唯一可靠的方法,可以让弹出窗口在href之前出现。对于编辑器窗口和其他东西,你也可以让它在关闭时启动。不过,对于非内部网页来说,这不是好的做法。我会尝试一下,谢谢你的回答!谢谢,这样你可以选择何时显示或不显示弹出消息。基本上你可以用一个私有属性标记你的锚,然后检查它们是否是外部链接。当检查为阳性时,通过onbeforeunload显示确认。我会这样做,它似乎正在工作。几乎完成了。谢谢!谢谢,我那么,我可以请你选择我的答案更正确吗?然后…你找到了有用的答案吗?我会尝试一下,谢谢你的答案!谢谢,这样你可以选择何时显示或不显示弹出消息。基本上你可以用私有属性标记你的锚,然后检查它们是否是外部链接。当检查为阳性时,s如何通过onbeforeunload进行确认。我会这样做,它似乎正在工作。几乎完成了。谢谢!谢谢,如果是,我可以请您选择我的答案作为更正确的答案吗?然后…您找到有帮助的答案了吗?