如何在 php 中单击浏览器的刷新或后退按钮时创建警报框
How to create an alert box when the browser's refresh or back button is clicked in php?
这可能是
一个重复的问题,但有一件事我需要知道,但我无法在任何其他问题上找到它。
当单击浏览器的后退刷新按钮时,如何弹出警报框,而不是单击任何其他按钮,如主页等,将页面重新发送到另一个页面?
我能够使用以下代码制作一个警报框:
<script type="text/javascript">
window.onbeforeunload = function() {
return 'If you resubmit this page, progress will be lost.';
};
</script>
但是当我单击我的主页按钮时,该按钮会将页面加载到另一个页面,警报框仍然会触发。我只需要浏览器的刷新和后退按钮的警报框。
任何帮助都非常感谢。提前谢谢。:)
更新
这是适用于 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>
现在我的问题是它在我的浏览器中不起作用但与 jsfiddle.net 一起使用的原因是什么?我错过了什么吗?要配置的东西等?谢谢。
JSFIDDLE 链接:http://jsfiddle.net/bawvu7yy/4/
仅当文档中存在单击的按钮时,才能确定单击的内容以触发导航。假设这个"主页"按钮是相关文档中的一个元素,也许您可以使用一个标志来跟踪是否单击了该按钮。
// 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.';
}
};
这样,仅当其他任何内容导致页面导航时,才会发生弹出窗口。
编辑:我已经提供了一个关于jsfiddle的工作演示。该链接不会触发弹出窗口,但其他两个行为与"返回"和"刷新"完全相同的按钮会触发弹出窗口。在此更新中,clicked = true;
被注释掉,这表明在未执行时,主页按钮的弹出窗口也开始出现。
第二次编辑:您在元素存在之前运行脚本。将带有 JavaScript 的 <script>
标签移动到<body>
的底部。
只需在 javascript 中使用 window.onbeforeunload 函数,请使用下面的代码。
<script type="text/javascript">
window.onbeforeunload = function() { return "Are you sure you want to leave?"; }
</script>
希望这对你有帮助
相关文章:
- 如何删除我用按钮创建的内容
- 单击按钮创建多实例jQuery UI对话框
- 如何为滑块的分页按钮创建简单的下一个和上一个触发器按钮
- Javascript使用变量通过按钮创建url
- 按钮创建无法定位功能代码错误
- 使用按钮创建新的下拉列表
- 点击按钮创建一个带有css动画的放射状进度条
- 从执行jscript列表按钮创建多个相关对象
- 在完整日历的Dayclick事件上触发jQuery qTip,然后使用其中的按钮创建事件
- 通过摇晃按钮创建小摆动
- 摆脱形式,仅使用按钮创建新记录
- 如何使用下一个和上一个按钮创建 jquery 滑块
- Chrome 扩展程序:通过单击按钮创建新标签页
- 使用按钮创建列表
- ExtJS:如何使用MessageBox按钮创建自定义模式窗口
- 如何在ASP.Net中单击按钮创建动态表
- carouFredSel:为next/prev按钮创建一个函数
- extjs如何使用单选按钮创建菜单
- 单击按钮创建表时,请选中“获取值”复选框
- 如何使按钮创建一个不同的文本,每次它是按下