首先,我在应用程序上使用了window.onbeforeunload。它在页面上运行,但是当单击锚链接时,应将其禁用<a href="abc.com">Click</a>。有任何想法吗?请分享。我的代码在它下面是行不通的:

var submitFormOkay = false;
window.onbeforeunload = function () {
    if (!submitFormOkay) {
        return "Don't delay your Success. Get FREE career counselling session. Fill in the details below";
    } else {
        submitFormOkay = '';
    }
}

<a class="navbar-brand" href="http://www.google.com">Click</a>

最佳答案

您可以在document.body上附加全局单击处理程序,如果单击通过a元素,则会将submitFormOkay设置为true(或者您可以使用另一个变量来绕过检查,或者通过以下方式清除处理程序:将null分配给window.onbeforeunload),例如:

$(document.body).on("click", "a", function() {
    submitFormOkay = true; // Or set another flag you'll check,
                           // or clear onbeforeunload entirely
});




没有jQuery(因为我最初错过了jquery标记):

document.body.addEventListener("click", function(e) {
    var element;
    for (element = e.target; element != document.body; element = element.parentNode) {
        if (element.tagName.toUpperCase() === "A") {
            submitFormOkay = true; // Or set another flag you'll check,
                                   // or clear onbeforeunload entirely
            break;
        }
    }
}, false);

关于javascript - 如何禁用<a>标签中的window.onbeforeunload?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34039407/

10-11 11:17