Javascript 在从页面重定向之前请求确认
我有申请表。 客户端被淘汰了 所以我有一个带有表单的页面,我想在用户尝试转到另一个页面之前询问用户确认(以防他更改了某些内容(此pard已准备就绪)) 因此,在所有的网站上进行路由-它的Sammy.js 我试过: Sammy JS-beforeJavascript 在从页面重定向之前请求确认,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?')){
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工作,不是吗?