Javascript 在从页面重定向之前请求确认

Javascript 在从页面重定向之前请求确认,javascript,jquery,sammy.js,Javascript,Jquery,Sammy.js,我有申请表。 客户端被淘汰了 所以我有一个带有表单的页面,我想在用户尝试转到另一个页面之前询问用户确认(以防他更改了某些内容(此pard已准备就绪)) 因此,在所有的网站上进行路由-它的Sammy.js 我试过: Sammy JS-before function ViewModel() { Sammy.before(/.*/, function () { if (window.confirm('Really go to another page?')){

我有申请表。 客户端被淘汰了

所以我有一个带有表单的页面,我想在用户尝试转到另一个页面之前询问用户确认(以防他更改了某些内容(此pard已准备就绪))

因此,在所有的网站上进行路由-它的Sammy.js

我试过: Sammy JS-before

function ViewModel()
{
  Sammy.before(/.*/, function () {

        if (window.confirm('Really go to another page?')){

        }
        else{
            //DO NOTHING AND STAY IN THE SAME PAGE
            //OR SOMETHING ELSE THAT YOU WANT

            return false;
        }

     });
}
它的工作,但它仍然为所有网站工作-和它的坏。 我没有办法禁用它,所以也许我可以不用sammy来做

谢谢你们


更新:此网站是SPA

您可以在之前使用
,但您必须指定仅在必要时显示确认对话框的选项。看。如果要指定为所有路由运行它,则必须指定要在哪些路由中执行它。Before选项仅提供下一条路线的信息。如果它取决于当前路由,您可以通过检查当前url获得它:

function extractSammyUrlFrom (context)
{
  // get the hash fragment (curernt route)
  "#" + context.path.split("#")[1] ;
}

如果它取决于页面中的任何其他内容,只需在显示对话框之前检查它。

您可以使用简单的JS,使用window.onbeforeundload=function(){如果(某些内容已更改){返回“真的转到另一个页面?;}}您可以在请求确认之前检查表单id。不,伙计们-我忘了说-我的网站是SPA。所以在Preforeunload中-仅使用F5/ctrl+r,但如果我尝试另一个选项卡-他不喜欢重新加载,因为斯帕达维德,有人知道Sammy.js是什么,他知道这是一个SPA,不会给出这种答案。这不是你的错,而是他们的错,因为他们回答的时候不太注意。我在这里回答了一个类似的问题:我知道。但是我需要所有的路线!因为我想问他用户是否想离开当前页面——他去哪个页面并不有趣——因为我需要所有页面。然后,答案是什么?你让它为所有的wbesite工作,不是吗?