Javascript 离开网站时弹出
我被要求在访问者离开网站时弹出一个窗口,询问他们是否真的想离开。此弹出窗口仅在其购物车中有物品时显示 我可以很容易地将弹出窗口限制在购物车有物品时,但是我遇到的问题是,即使单击内部链接也会加载弹出窗口-我怎么能拥有它,这样只有在实际离开网站时才会出现Javascript 离开网站时弹出,javascript,jquery,Javascript,Jquery,我被要求在访问者离开网站时弹出一个窗口,询问他们是否真的想离开。此弹出窗口仅在其购物车中有物品时显示 我可以很容易地将弹出窗口限制在购物车有物品时,但是我遇到的问题是,即使单击内部链接也会加载弹出窗口-我怎么能拥有它,这样只有在实际离开网站时才会出现 <script language="JavaScript"> window.onbeforeunload = confirmExit; function confirmExit() { return "some me
<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
return "some message about leaving";
}
</script>
window.onbeforeunload=确认退出;
函数confirmExit()
{
返回“关于离开的消息”;
}
您可以获取已单击链接项目的URL,并检查其是否位于同一域中。将其放入if not语句中,其中包含当前代码。您可以获取单击链接项目的URL,并检查它是否位于同一域中。将其放入if-not语句中,并将当前代码放入其中。好的,首先:不要这样做。请这对用户来说非常烦人。只需确保购物车项目存储在服务器或cookie中,这样用户就可以随时返回站点
<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
return "some message about leaving";
}
</script>
看看这个相关的问题:这不容易做到
不要在卸载之前使用onbeforeunload
,而是将单击处理程序附加到站点上显示弹出窗口的外部链接,或者将单击处理程序附加到检查链接是否为外部链接的所有链接
同样,不要这样做…好的,首先:不要这样做。请这对用户来说非常烦人。只需确保购物车项目存储在服务器或cookie中,这样用户就可以随时返回站点
<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
return "some message about leaving";
}
</script>
看看这个相关的问题:这不容易做到
不要在卸载之前使用onbeforeunload
,而是将单击处理程序附加到站点上显示弹出窗口的外部链接,或者将单击处理程序附加到检查链接是否为外部链接的所有链接
同样,不要这样做…单向,我也不建议这样做-用户应该能够在没有收到警告的情况下离开您的站点-但是如果单击了链接,您可以注销事件:
$('a').click(function() {
window.onbeforeunload = null;
return true; // continue
});
一种方法是,我也不建议这样做-用户应该能够在没有收到警告的情况下离开您的站点-但是如果单击了链接,您可以注销事件:
$('a').click(function() {
window.onbeforeunload = null;
return true; // continue
});
如果单击链接,它将在
e.target.activeElement
中告诉您。您可以检查它是否是此处的链接:
window.onbeforeunload = confirmExit;
function confirmExit(e)
{
var $element = $(e.target.activeElement);
if ($element.prop("tagName") !== "A") {
return "some message about leaving";
}
}
注意:您可以添加附加条件检查
$element.attr(“href”)
,以确保它显示非您站点链接的消息。如果单击链接,它将在e.target.activeElement
中告诉您。您可以检查它是否是此处的链接:
window.onbeforeunload = confirmExit;
function confirmExit(e)
{
var $element = $(e.target.activeElement);
if ($element.prop("tagName") !== "A") {
return "some message about leaving";
}
}
注意:您可以添加额外的条件检查
$element.attr(“href”)
,以确保它显示非您站点链接的消息。您必须控制它以启用和禁用该行为,如下所示:
<script>
var beforeunload = function (event) {
var message = 'some message about leaving';
(event || window.event).returnValue = message; // Gecko + IE
return message; // Webkit, Safari, Chrome...
};
document.addEventListener('click', function(event) {
if (event.target.tagName === 'A') {
window.removeEventListener('beforeunload', beforeunload);
}
});
window.addEventListener('beforeunload', beforeunload);
</script>
var beforeunload=函数(事件){
var message='关于离开的一些消息';
(event | | window.event).returnValue=message;//Gecko+IE
返回消息;//Webkit、Safari、Chrome。。。
};
document.addEventListener('click',函数(事件){
如果(event.target.tagName=='A'){
removeEventListener('beforeunload',beforeunload');
}
});
window.addEventListener('beforeunload',beforeunload);
每当在页面上单击链接时,这将删除
beforeunload
事件。您必须控制它以启用和禁用该行为,如下所示:
<script>
var beforeunload = function (event) {
var message = 'some message about leaving';
(event || window.event).returnValue = message; // Gecko + IE
return message; // Webkit, Safari, Chrome...
};
document.addEventListener('click', function(event) {
if (event.target.tagName === 'A') {
window.removeEventListener('beforeunload', beforeunload);
}
});
window.addEventListener('beforeunload', beforeunload);
</script>
var beforeunload=函数(事件){
var message='关于离开的一些消息';
(event | | window.event).returnValue=message;//Gecko+IE
返回消息;//Webkit、Safari、Chrome。。。
};
document.addEventListener('click',函数(事件){
如果(event.target.tagName=='A'){
removeEventListener('beforeunload',beforeunload');
}
});
window.addEventListener('beforeunload',beforeunload);
当页面上的链接被点击时,这将删除<代码>预卸载事件。我会告诉你的老板,没有更好的方法来对抗你的用户,而不是在他们试图离开页面时给他们展示一个弹出窗口。你怎么知道他们什么时候离开网站?唯一的选择是为每个链接附加一个单击处理程序,如果是指向同一域的链接,则在卸载前分离
onbeforeunload
。更好的解决办法是让你的购物车顺畅运行,当用户的会话超时时,可能会向他们发送一封提醒电子邮件“嘿,你的购物车中还有物品”。当你尝试离开网站时,会出现一个弹出窗口,上面写着“你真的想离开吗?”并决定不离开?可能重复:@bhspencer我已经尝试过了,不去。我会告诉你的老板,没有更好的方法来对抗你的用户,而不是在他们离开页面时给他们展示一个弹出窗口。你怎么知道他们什么时候离开网站?唯一的选择是为每个链接附加一个单击处理程序,如果是指向同一域的链接,则在卸载前分离onbeforeunload
。更好的解决办法是让你的购物车顺畅运行,当用户的会话超时时,可能会向他们发送一封提醒电子邮件“嘿,你的购物车中还有物品”。当你尝试离开网站时,会出现一个弹出窗口,上面写着“你真的想离开吗?”并决定不离开?可能重复:@bhspencer我已经尝试过了,不行。另外,我同意所有人说你不应该这样做的观点,但我知道有时候开发人员没有最后决定权,或者客户需要特定的功能。如果可以的话,试着说服他们,只有当用户将丢失他们输入的信息时,才应该使用onbeforeuload
事件。此外,我同意所有人的说法,你不应该这样做