相关疑难解决方法(0)

如何显示"您确定要离开此页面吗?" 什么时候改变?

在stackoverflow中,如果您开始进行更改,那么您尝试离开页面,会出现一个javascript确认按钮并询问:"您确定要离开此页面吗?" blee blah bloo ...

有没有人以前实现过这个,我如何跟踪提交的更改?我相信我自己可以做到这一点,我正在努力学习专家们的良好做法.

我尝试了以下但仍然无法正常工作:

<html>
<body>
    <p>Close the page to trigger the onunload event.</p>
    <script type="text/javascript">
        var changes = false;        
        window.onbeforeunload = function() {
            if (changes)
            {
                var message = "Are you sure you want to navigate away from this page?\n\nYou have started writing or editing a post.\n\nPress OK to continue or Cancel to stay on the current page.";
                if (confirm(message)) return true;
                else return false;
            }
        }
    </script>

    <input type='text' onchange='changes=true;'> </input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何人都可以发一个例子吗

html javascript confirm message onbeforeunload

253
推荐指数
9
解决办法
22万
查看次数

如何检测浏览器后退按钮事件 - 跨浏览器

你如何明确地检测用户是否按下了浏览器中的后退按钮?

如何使用#URL系统在单页Web应用程序中强制使用页内后退按钮?

为什么地球上没有浏览器按钮触发他们自己的事件!?

javascript cross-browser back single-page-application

188
推荐指数
11
解决办法
42万
查看次数

如果没有用户交互,Chrome popstate不会在“后退按钮”上触发

我正在尝试使用“ pushState”和“ popstate”事件来捕获“后退”按钮导航,但是,尽管popstate事件在Firefox中可以正确触发,但在Chrome浏览器中不会触发(版本76.0.3809.87(官方内部版本))(64 -bit)),如果没有用户交互

通过测试,看来popstate事件仅在用户与页面进行交互(即,单击文档上的某个位置)时才被触发。因此,如果您加载页面而不进行交互并单击Back,则不会调用popstate函数。

我添加了一个小提琴来演示这一点:https : //jsfiddle.net/0xwvLndu/

要在Chrome中测试小提琴,只需点击链接并点击“后退”按钮。您不会看到任何警报。然后再次单击链接,但是这次单击Fiddle文档上的任意位置,然后单击“上一步”按钮,然后触发警报。

我在Chromium论坛上找到了一个可能与此怪癖有关的讨论,并且也许已实施该讨论以防止滥用历史记录-https://groups.google.com/a/chromium.org/forum/#! topic/ blink-dev / OCS7g72HtyIhttps://github.com/WICG/interventions/issues/21#issuecomment-425609246

如果是这种情况,是否意味着就不能再依赖popstate来捕获“后退”按钮动作了,如果是,是否有解决方案?

以下是我一直在测试的示例:

window.addEventListener('load', function() {
    history.pushState(null, null, document.URL);
});

window.addEventListener('popstate', function(event) {
    alert('test');
});
Run Code Online (Sandbox Code Playgroud)

我希望无论用户如何交互都可以在“后退按钮”上触发警报,但这在Chrome中不会发生。

javascript popstate

6
推荐指数
1
解决办法
353
查看次数