Javascript 仅在转到其他网站时导航停止
我正在使用以下代码触发“您确定要离开网站吗”警报,但由于某些原因,它无法识别我的if-else条件,并且仅当我仅在Javascript 仅在转到其他网站时导航停止,javascript,jquery,wordpress,html,Javascript,Jquery,Wordpress,Html,我正在使用以下代码触发“您确定要离开网站吗”警报,但由于某些原因,它无法识别我的if-else条件,并且仅当我仅在window.onbeforeunload=function(){return true}中放入return true时才起作用。是否只有当用户离开我的网站时,我才可以触发此警报?因为此时没有if-else条件,它会询问用户是否也尝试在同一网站中导航 window.onbeforeunload = function() { var location = window.documen
window.onbeforeunload=function(){return true}
中放入return true
时才起作用。是否只有当用户离开我的网站时,我才可以触发此警报?因为此时没有if-else条件,它会询问用户是否也尝试在同一网站中导航
window.onbeforeunload = function() {
var location = window.document.activeElement.href;
if (typeof location != 'undefined')
{
console.log(location);
} else { reutn true; }
};
您可以根据单击的链接的
host
设置标记并切换标记
var host = location.hostname,
allowNavigate = false;
window.onbeforeunload = function() {
if (!allowNavigate) {
return 'Message string';// not what actually gets displayed in most browsers these days
}
//don't return anything
return;
};
window.onload = function() {
document.querySelectorAll('a').forEach(function(a) {
a.addEventListener('click', function(e) {
allowNavigate = this.hostname === host;
});
});
};
例如,此页面上的主机名是“stackoverflow.com”
您可以为要查看提示消息的链接动态添加“window.onbeforeunload”
并删除不需要提示的链接的“window.onbeforeuload”
<a onClick="a(true)" href="https://www.w3schools.com">Click here to get promt before navigate</a>
<br>
<a onClick="a(false)" href="https://jsfiddle.net/">Click here to navigate without promt </a>
<script>
function a(showPrompt){
window.onbeforeunload = showPrompt ? function(e) {return '';}: null;
}
</script>
功能a(显示提示){
window.onbeforeunload=showPrompt?函数(e){返回“”;}:null;
}
您不能阻止用户继续他们想去的地方,您所能做的就是询问他们是否愿意。提供糟糕的用户体验肯定会让他们不想留下来back@charlietfl我不想阻止他们。基本上,我想做的就是当他们在我的网站上导航时,离开网站警报不应该出现,但当他们离开网站时,只有在这种情况下,无论他们想留下还是离开,警报才会出现。那么有没有办法做到这一点,或者根本不可能做到?谢谢,但如果用户从书签栏打开url或在浏览器url字段中手动输入url,此解决方案将不起作用。我测试了它,但它不起作用。当我尝试使用if-else使用上面的代码执行此操作时,我在控制台中遇到了这个问题:多年来,整个事件一直被滥用,并且变得比以前更具限制性