如何禁用单页应用程序的某些网页的后退按钮

问题描述 投票:0回答:2

我的应用已经显示在列表视图中的详细信息页面。在点击列表项就钻到足见其各自的详细信息页面。

我需要使用默认的后退按钮移动或浏览器从细节页面导航到列表页面,但是当我在列表视图页面点击它同后退按钮不应该工作。

我累了加入该列表页面的JS下面的代码防止后退按钮的默认操作。但是,后退按钮是为整个应用程序禁用。

document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown(e) {
  e.preventDefault();
  // alert('Back Button is Pressed!');
}

谁能帮我解决这个问题。提前致谢

javascript jquery html5 cordova knockout.js
2个回答
1
投票

为了处理后退按钮的行为(模拟禁用)你必须处理导航和可变被允许航行的时候就知道了。

我做了一个网页,以显示它是如何,可与浏览器的返回按钮,Android的后退按钮。

可变disableBackButtonInThisPage最初真,所以导航是不允许的。

A“切换禁止”按钮改变disableBackButtonInThisPage值,所以当它是假的,导航是允许的。

<!DOCTYPE html>
<html lang="en">

<head>
    <script>
        history.pushState(null, null, location.href);
        var disableBackButtonInThisPage = true;
        window.onpopstate = function () {
            if (disableBackButtonInThisPage) {
                history.go(1);
            }else{
                history.go(-1);
            }
        };
        function toggleDisable() {
            disableBackButtonInThisPage = !disableBackButtonInThisPage;
            alert("Disable back button is: " + disableBackButtonInThisPage);
        }
    </script>
</head>

<body>
    <h1>Back button demo</h1>
    <p>Click browser back button or tap Android back button.</p>
    <button onclick="toggleDisable();">Toggle disable</button>
</body>

</html>

0
投票

你必须用一些变量,其中部分你是管理和每次更改时更新它,在这种情况下,我与“pagenow”做

<button data-bind="enable: pagenow()!='listpage'">Back</button>
© www.soinside.com 2019 - 2024. All rights reserved.