Javascript 如何在浏览器';在php中单击“刷新”或“返回”按钮?
这可能是一个重复的问题,但有一件事我需要知道,我无法在任何其他问题上找到它 当单击浏览器的“刷新后退”按钮,但没有任何其他按钮(如主页等)将页面重定向到另一页面时,如何弹出警告框 我能够使用以下代码创建一个警报框:Javascript 如何在浏览器';在php中单击“刷新”或“返回”按钮?,javascript,html,Javascript,Html,这可能是一个重复的问题,但有一件事我需要知道,我无法在任何其他问题上找到它 当单击浏览器的“刷新后退”按钮,但没有任何其他按钮(如主页等)将页面重定向到另一页面时,如何弹出警告框 我能够使用以下代码创建一个警报框: <script type="text/javascript"> window.onbeforeunload = function() { return 'If you resubmit this page, progress will be los
<script type="text/javascript">
window.onbeforeunload = function() {
return 'If you resubmit this page, progress will be lost.';
};
</script>
window.onbeforeunload=函数(){
return“如果重新提交此页面,进度将丢失”;
};
但当我点击主页按钮,将页面加载到另一个页面时,警报框仍会触发。我只需要浏览器的“刷新”和“返回”按钮的“警报”框
非常感谢您的帮助。提前感谢。:)
更新
这是可用于jsfiddle.net的代码,但不适用于我的浏览器
<html>
<head>
<script>
var btn = document.getElementById('homepage'),
clicked = false;
btn.addEventListener('click', function () {
clicked = true;
});
window.onbeforeunload = function () {
if(!clicked) {
return 'If you resubmit this page, progress will be lost.';
}
};
</script>
</head>
<body>
<form method="post" action="something.php" name="myForm">
<input type="submit" name="homepage" value="Please Work" id="homepage" href="something.php">
</form>
</body>
</html>
var btn=document.getElementById(“主页”),
单击=假;
btn.addEventListener('click',函数(){
单击=真;
});
window.onbeforeunload=函数(){
如果(!单击){
return“如果重新提交此页面,进度将丢失”;
}
};
现在我的问题是,为什么它不能在我的浏览器中工作,但可以与jsfiddle.net一起工作?有什么我错过的吗?要配置的东西等?谢谢
JSFIDDLE链接:只需使用javascript中的window.onbeforeunload函数即可使用下面的代码
<script type="text/javascript">
window.onbeforeunload = function() { return "Are you sure you want to leave?"; }
</script>
window.onbeforeunload=function(){return“确定要离开吗?”;}
希望这能帮助您确定只有在您的文档中存在单击的按钮时才可能触发导航。假设这个“主页”按钮是相关文档中的一个元素,也许您可以使用一个标志来跟踪该按钮是否被单击
// assume that the homepage button has an id "homepage".
var btn = document.getElementById('homepage'),
clicked = false;
btn.addEventListener('click', function () {
clicked = true;
});
window.onbeforeunload = function () {
if(!clicked) {
return 'If you resubmit this page, progress will be lost.';
}
};
这样,只有当任何其他原因导致页面导航时,才会出现弹出窗口
编辑:我已经提供了一个关于这个的工作演示。链接不会触发弹出窗口,但其他两个按钮的行为与“返回”和“刷新”完全相同,会触发弹出窗口。在中,clicked=true代码>被注释掉,这表明当未执行此操作时,主页按钮的弹出窗口也开始出现
第二次编辑:您正在元素存在之前运行脚本。将带有JavaScript的
标记移动到
的底部,这是不可能的,因为为了判断他们是在刷新、返回还是去其他地方,您需要知道他们试图访问的url,这是不可能的@user4035return
在窗口中的onbeforeuload
事件中传递字符串时显示弹出窗口。参考资料:@PatrickRoberts谢谢,我不知道。这正是他已经拥有的。。。这并不能回答问题。点击任何按钮都会弹出消息!我明白你想说什么,但我没有足够的知识来付诸实施。知道单击了哪个按钮是正确的方法。我试过你的答案,但不起作用。它只是刷新,所有按钮上都没有警告框。这是因为您的代码可能抛出了一个错误,因为我猜您没有id为“homepage”的按钮。如果您希望示例代码真正起作用,您必须提供有关此主页按钮的更多信息。我在尝试您的代码之前编辑了我的代码,我非常确定一切正常,只是现在它没有显示警报。以下是我主页的代码。很抱歉迟了答复。这里是几乎所有与主页按钮有关的内容。有关代码,请参阅。