相关疑难解决方法(0)

离开页面之前的JavaScript

我想在用户离开页面之前做出确认.如果他说好,那么它将重定向到新页面或取消离开.我尝试使用onunload来实现它

<script type="text/javascript">
function con() {
    var answer = confirm("do you want to check our other products")
    if (answer){

        alert("bye");
    }
    else{
        window.location = "http://www.example.com";
    }
}
</script>
</head>

<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但它确认页面已经关闭后?怎么做得好?

如果有人用jQuery演示如何做到这一点会更好吗?

javascript jquery

209
推荐指数
8
解决办法
31万
查看次数

如何使用javascript停止浏览器后退按钮

我正在做php的在线测验应用程序.我想在回到考试时限制用户.我尝试过以下脚本,但它会停止我的计时器.我该怎么办请建议我.我已经包含了源代码.计时器存储在cdtimer.js中

<script type="text/javascript">
        window.history.forward();
        function noBack()
        {
            window.history.forward();
        }
</script>
<body onLoad="noBack();" onpageshow="if (event.persisted) noBack();" onUnload="">
Run Code Online (Sandbox Code Playgroud)

我有考试计时器,它从mysql数据库中获取考试时间,并相应地启动计时器,当我把代码禁用后退按钮时它停止.会是什么问题.

javascript browser

137
推荐指数
15
解决办法
45万
查看次数

Angular2路由器 - 任何人都知道如何在app.ts中使用canActivate,以便我可以重定向到主页,如果没有登录

Angular2路由器 - 任何人都知道如何在app.ts中使用canActivate,以便我可以重定向到主页,如果没有登录

我正在使用打字稿和角度2.

在我的app.ts文件中我的构造函数下的当前尝试:

   canActivate(instruction) {           
               console.log("here - canActivate");
               console.log(instruction);

               this.router.navigate(['Home']);  
   }
Run Code Online (Sandbox Code Playgroud)

它目前没有被击中.知道为什么吗?

typescript angular2-routing angular

12
推荐指数
3
解决办法
2万
查看次数

Angular2:使用浏览器返回事件关闭ng-bootstrap模式

我的Angular2应用程序使用ng-bootstrap模式来详细显示一些结果图表.出于这个原因,我将模态调整为几乎全屏(仅margin: 20px左侧).这会导致某些用户使用浏览器后退按钮而不是页面右上角或底部的关闭按钮.

我现在正在尝试取消默认的浏览器返回事件,并在调用事件时关闭模式.

我在这里使用一些代码作为代码库来监听浏览器事件并用一些东西扩展它:

import { PlatformLocation } from '@angular/common'

(...)

modalRef: NgbModalRef;

constructor(location: PlatformLocation) {

    location.onPopState(() => {

        console.log('pressed back!');

        // example for a simple check if modal is opened
        if(this.modalRef !== undefined) 
        {
            console.log('modal is opened - cancel default browser event and close modal');
            // TODO: cancel the default event

            // close modal
            this.modalRef.close();
        } 
        else 
        {
            console.log('modal is not opened - default browser event');
        }
    });
}

(...)
// some code …
Run Code Online (Sandbox Code Playgroud)

ng-bootstrap angular

11
推荐指数
1
解决办法
4724
查看次数

Angular 2:将依赖项注入@CanActivate?

在Angular 2中,您可以@CanActivate为组件指定注释,您可以在其中确定是否应激活组件.它不是接口的原因是因为在组件被实例化之前调用了回调.问题是,我无法找到一种方法来将依赖注入到该回调中.我需要我的服务,告诉我我是否登录(以及作为谁)以确定是否允许路由到特定组件.

如何将依赖项注入@CanActivate回调?我正在使用ES5,但这不起作用:

app.ListsComponent = ng.router.CanActivate([
    app.SessionService,
    function(session, instruction) {
        console.log(session);
        return true;
    }
])(app.ListsComponent);
Run Code Online (Sandbox Code Playgroud)

编辑:或者,我可以routerOnActivate在组件上使用生命周期事件,并使用它this.router.navigate来发送用户,如果他们不应该在那里.缺点是它会破坏浏览器历史记录:如果每次到达特定URL时我都会异步重定向您,则无法在浏览器中非常有用地使用"后退"按钮.有没有办法router.navigate使用history.replaceState而不是history.pushState这种情况?

angular2-routing angular

10
推荐指数
2
解决办法
5691
查看次数

有没有一种方法可以防止整个角度2/4/5 Web应用程序中的退格导航?

我需要在整个应用程序内限制退格导航。是否有解决方案,例如可以在整个应用程序的单个图块下执行的操作?

navigation angular angular5

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