onbeforeunload在codeigniter中不起作用



我有非常简单的代码,只是在刷新页面之前显示一个警告。该代码使用Codeigniter作为框架(不确定Codeigniters是否与该问题有关(。我有一个视图文件(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->负载->视图('test_v'(;

当我刷新页面时,我希望看到一个警告对话框,其中包含文本"你真的想执行该操作吗?",但是根本没有显示任何警告。我已经用IE、Firefox、Chrome进行了测试。没有一个有效。我还尝试将js代码添加到如下的主体标签中:

<body onbeforeunload=" return 'Do you really want to perform the action?'">

也不起作用。有人能帮忙吗?非常感谢!

我建议使用以下作为事件侦听器:

window.addEventListener('beforeunload', function (e) {
// Cancel the event
e.preventDefault(); // If you prevent default behavior in Mozilla Firefox prompt will always be shown
// Chrome requires returnValue to be set
e.returnValue = '';
});

根据MDN文章:

注意:为了防止不必要的弹出窗口,一些浏览器不会显示在加载前事件处理程序中创建的提示,除非与页面进行了交互。此外,有些根本不显示它们。

可能是您的问题的原因。我在一个页面上进行了测试,直到与该页面交互后才收到警报。

相关内容

  • 没有找到相关文章

最新更新