【发布时间】:2021-03-13 23:29:52
【问题描述】:
我有非常简单的代码,只是为了在页面刷新之前显示警告。该代码使用 Codeigniter 作为框架(不确定 Codeigniter 是否与问题有关)。我有一个包含以下代码的视图文件(test_v.php):
<?php ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body >
<p>Test onbeforeunload</p>
<script type="text/javascript">
window.onbeforeunload = function () {
return 'Do you really want to perform the action?';
}
</script>
</body>
</html>
然后我在控制器 test.php 中加载这个视图文件 $this->load->view('test_v');
当我刷新页面时,我希望看到带有文本“您真的要执行该操作吗?”的警告对话框,但根本没有显示任何警告。我已经用 IE、Firefox、Chrome 进行了测试。没有工作。 我也尝试将 js 代码添加到 body 标签中,如下所示:
<body onbeforeunload=" return 'Do you really want to perform the action?'">
也不工作。 有人可以帮忙吗?非常感谢!
【问题讨论】:
-
您拥有的代码应该可以正常工作。当您单击此稍作修改的版本中的任何一个链接时,您能否验证您是否收到了弹出窗口,jsfiddle.net/043vymod
-
@CBroe,是的,单击任一链接时都会弹出窗口。所以这个问题很可能与 Codeigniter 框架有关。
-
但是 CI 在服务器端,在客户端编码时应该对客户端的行为影响不大。
-
@CBroe,我刚刚意识到,当我单击链接时出现的弹出窗口显示了一条非常不同的消息。在 Chrome 和 IE 上,它显示“您所做的更改可能无法保存”。但在 Firefox 上显示“此页面要求您确认是否要离开 - 您输入的信息可能不会保存。”。没有一个浏览器显示“您真的要执行该操作吗?”,这是预期显示的内容,对吧?
-
并非所有浏览器都会显示自定义消息,不会。我猜这种情况下的自定义消息可能存在某种滥用/诈骗的可能性。
标签: javascript php codeigniter onbeforeunload