是否有任何跨浏览器的JavaScript/jQuery代码来检测浏览器或浏览器选项卡是否正在关闭,而不是由于链接被点击?
在我的系统中编辑页面时,用户可能决定导航到另一个网站,这样做可能会丢失他们未保存的所有编辑内容.
我想拦截任何转到另一个页面的尝试,并提示用户确保他们希望这样做,因为他们可能会丢失他们当前的工作.
Gmail以非常类似的方式执行此操作.例如,撰写新电子邮件,开始在邮件正文中键入内容并在地址栏中输入新位置(比如twitter.com或其他内容).它会提示"你确定吗?"
想法如何复制这个?我的目标是IE8,但也希望与FF和Chrome兼容.
我在这部分遇到了麻烦:
var ex = {
exampl: function(){
var ref=window.event.target||window.event.srcElement; // here
alert(ref.innerHTML); // (example)
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数以这种方式调用:
document.body.childNodes[0].addEventListener('mouseover',ex.exampl,true);
Run Code Online (Sandbox Code Playgroud)
只有Firefox说window.event没有定义......
我不知道该怎么做,让它发挥作用.它在webkit浏览器和opera中运行得非常好(我无法在MSIE中检查它,我不关心它).
为什么会这样?
我正在使用Reactjs。我想警告用户单击后退按钮。我所做的是
handleWindowClose = (ev) => {
ev.preventDefault();
return ev.returnValue = 'Leaving this page will loose data';
}
componentDidMount = () => {
window.addEventListener('beforeunload',this.handleWindowClose);
}
componentWillUnmount = () => {
window.removeEventListener('beforeunload',this.handleWindowClose);
}
Run Code Online (Sandbox Code Playgroud)
但是,这与单击后退按钮不起作用。所以我尝试这样做
handleWindowClose = (ev) => {
ev.preventDefault();
return ev.returnValue = 'Leaving this page will loose data';
}
onBackButtonEvent = (e) => {
e.preventDefault();
if(confirm("Do you want to loose this data")){
window.history.go(0);
}else {
window.history.forward();
}
}
componentDidMount = () => {
window.addEventListener('beforeunload',this.handleWindowClose);
window.addEventListener('popstate',this.onBackButtonEvent);
}
componentWillUnmount = () => { …Run Code Online (Sandbox Code Playgroud) 只是想知道,是否可以创建具有多个选项的警报?
例如,在 Facebook 中,当您在未完成消息输入时尝试关闭选项卡/窗口时,会弹出带有“离开此页面”和“留在此页面”选项的提醒。
以下要点:https://gist.github.com/1876791(从这个问题的演示中借用)是一个window.onbeforeunload在js 中使用的简单例子.
我们遇到的问题如下(适用于Safari 5.1.3而不是最新的Chrome版本):
cmd-R.如果您真的想离开页面,系统会再次询问您这是Safari的错误吗?有办法解决这个问题吗?
我想要做的是在页面退出或导航离开时随时弹出一个弹出框.现在我有
<script type="text/javascript">
function box()
{
var r=confirm("Message");
if (r==true)
{
window.location.href="yes.html";
}
else
{
window.location.href="no.html";
}
}
</script>
<body onunload="box();">
Run Code Online (Sandbox Code Playgroud)
我有2个问题:
如果您实际离开页面,刷新,新URL等,它仅显示该框.如果您退出选项卡或浏览器,则框不会弹出.
无论你按什么按钮,它都会把你发送给你原本想去的地方,它永远不会把你送到no.html或yes.html.
有人能告诉我这是怎么回事吗?
当用户离开网站时,我想向我的API服务器发送清除请求(实际上是关闭标签页/浏览器,而不仅仅是更改SPA中的页面)。在使用带有React Router的React的应用程序中,是否有惯用的方式做到这一点?页面上的componentWillUnmount火会关闭吗?我认为不是。
建立:
我有一个表单和一个"提交"按钮.理想情况下,用户应填写表单,单击"提交",然后退出选项卡.如果他试图离开标签而不保存更改,我需要提醒他3个选项:
问题:
实现保存和取消很容易.问题在于"丢弃".如果用户单击"放弃",则表单数据应恢复到修改前的状态.
有没有办法做到这一点?如果我没有正确解释问题,请告诉我.
我填写的表单可以退出窗口而不会收到警告(我使用的是Chrome)。
如何确保退出前得到警告?是否有为此设置的Django?
javascript ×8
jquery ×3
reactjs ×2
alert ×1
firefox ×1
popup ×1
react-router ×1
redux ×1
safari ×1