你好我只需要在关闭浏览器/标签时弹出确认消息,而不是在点击任何链接时。在我的代码中,当我关闭浏览器/标签以及点击任何我不想要的链接时,它会弹出消息。我真的不知道该怎么做。谁能帮帮我吗。 我的代码是 -
<body>
<div id="copyright">
<div class="moduletable copyright ">
<div class="custom copyright">
<p>
<span class="copy">© Copyright 2008</span>
Inc. All rights reserved. </p>
</div>
</div>
</div>
</div>
</div>
<br class="clear" />
</div>
</div>
<script language="JavaScript">
window.onbeforeunload = bunload;
function bunload(){
dontleave="Are you sure you want to leave?";
return dontleave;
}
</script>
</body>
</html>
答案 0 :(得分:2)
试试这个: -
<body>
<a href="demo-1" onclick="prevent()">click here</a>
<script language="JavaScript">
window.onbeforeunload = function () {
return "Are you sure?";
}
function prevent() {
window.onbeforeunload = function () { };
};
</script>
</body>
答案 1 :(得分:1)
您说的事件onbeforeunload
效果很好。
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
答案 2 :(得分:0)
下面的代码将完全是伪代码,描述了您需要运行的方法才能使其正常工作。
第一步是你需要为所有&#34;内部&#34;添加一个标识符。您网站中的链接。例如,如果您的页面是联系人,并且主页上有指向该页面的链接,则需要区分页面类型。
function confirmExit() {
if (!internal_link) {
// random shit..
return message
}
}
var key = "internal_link";
window[key] = false;
var message = "Your custom message. Are you sure you want to blah?";
window.onbeforeunload = confirmExit;
internal_link = false;
$(document).ready(function () {
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname
}
$("a").each(function () {
if ($(this)[0].href.indexOf(window.location.origin) == 0) {
if ($(this).attr("onclick") == "undefined") {
$(this).attr("onclick", key + " = true")
} else {
if ($(this).attr("onclick")) {
var e = $(this).attr("onclick");
$(this).attr("onclick", e + " " + key + " = true")
} else {
$(this).attr("onclick", key + " = true")
}
}
} else {
if ($(this).attr("onclick") !== key + " = true" || $(this).attr("onclick") == "undefined") {
$(this).attr("onclick", key + " = false")
}
}
});
});
以上是我之前使用过的,它完美无缺。基本上它的作用是为内部链接(站点中的链接)添加属性,然后当用户浏览您的站点时,onbeforeunload
运行confirmExit()
函数并检查internal_link
是否为false,如果是,则显示消息,否则它将导航通过该站点。
答案 3 :(得分:0)
对我来说没有任何作用,但是我使用了上述代码和其他论坛的一些组合。
<script language="JavaScript">
window.onbeforeunload = function () {
return "Are you sure?";
};
$(document).ready(function () {
$('a').click(function () {
window.onbeforeunload = null;
});
$('form').submit(function () {
window.onbeforeunload = null;
});
});
</script>
您提交表单时也会触发onbeforeunload
事件,因此我们需要阻止该事件。