相关疑难解决方法(0)

检测浏览器或制表符关闭

是否有任何跨浏览器的JavaScript/jQuery代码来检测浏览器或浏览器选项卡是否正在关闭,而不是由于链接被点击?

javascript jquery

272
推荐指数
12
解决办法
45万
查看次数

拦截页面退出事件

在我的系统中编辑页面时,用户可能决定导航到另一个网站,这样做可能会丢失他们未保存的所有编辑内容.

我想拦截任何转到另一个页面的尝试,并提示用户确保他们希望这样做,因为他们可能会丢失他们当前的工作.

Gmail以非常类似的方式执行此操作.例如,撰写新电子邮件,开始在邮件正文中键入内容并在地址栏中输入新位置(比如twitter.com或其他内容).它会提示"你确定吗?"

想法如何复制这个?我的目标是IE8,但也希望与FF和Chrome兼容.

javascript internet-explorer javascript-events

115
推荐指数
3
解决办法
14万
查看次数

为什么FF说window.event未定义?(具有添加的事件监听器的调用函数)

我在这部分遇到了麻烦:

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中检查它,我不关心它).

为什么会这样?

javascript firefox javascript-events addeventlistener

30
推荐指数
4
解决办法
6万
查看次数

ReactJs浏览器“后退”按钮

我正在使用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)

reactjs

7
推荐指数
2
解决办法
1万
查看次数

具有多种选择的警报

只是想知道,是否可以创建具有多个选项的警报?

例如,在 Facebook 中,当您在未完成消息输入时尝试关闭选项卡/窗口时,会弹出带有“离开此页面”和“留在此页面”选项的提醒。

javascript alert

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

当window.onbeforeunload返回false时,Safari会保持"加载"状态

以下要点:https://gist.github.com/1876791(从这个问题的演示中借用)是一个window.onbeforeunload在js 中使用的简单例子.

我们遇到的问题如下(适用于Safari 5.1.3而不是最新的Chrome版本):

  1. 访问此页面:http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm
  2. 单击其中一个链接,您将收到一条警告,询问您是否确实要离开此页面
  3. 点击"留在页面上"
  4. 使用重新加载页面cmd-R.如果您真的想离开页面,系统会再次询问您
  5. 点击"留在页面上".
  6. Safari保持"加载"状态,进度条显示为加载下一页.

这是Safari的错误吗?有办法解决这个问题吗?

javascript safari onbeforeunload

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

页面退出时弹出框

我想要做的是在页面退出或导航离开时随时弹出一个弹出框.现在我有

<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个问题:

  1. 如果您实际离开页面,刷新,新URL等,它仅显示该框.如果您退出选项卡或浏览器,则框不会弹出.

  2. 无论你按什么按钮,它都会把你发送给你原本想去的地方,它永远不会把你送到no.htmlyes.html.

有人能告诉我这是怎么回事吗?

javascript popup

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

使用React / React Router处理网站关闭/离开页面事件的惯用方式

当用户离开网站时,我想向我的API服务器发送清除请求(实际上是关闭标签页/浏览器,而不仅仅是更改SPA中的页面)。在使用带有React Router的React的应用程序中,是否有惯用的方式做到这一点?页面上的componentWillUnmount火会关闭吗?我认为不是。

javascript reactjs react-router redux

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

如何"丢弃"表单更改?

建立:

我有一个表单和一个"提交"按钮.理想情况下,用户应填写表单,单击"提交",然后退出选项卡.如果他试图离开标签而不保存更改,我需要提醒他3个选项:

  1. 保存
  2. 丢弃:丢弃表单数据更改,并保留选项卡,就好像数据从未修改过一样.如果用户返回相同的选项卡,他应该看到"未修改"的数据.
  3. 取消:只需关闭对话框,将用户保持在同一选项卡上.用户可以进一步修改数据,点击保存等.

问题:

实现保存和取消很容易.问题在于"丢弃".如果用户单击"放弃",则表单数据应恢复到修改前的状态.

有没有办法做到这一点?如果我没有正确解释问题,请告诉我.

jquery

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

尝试关闭具有填充表格的窗口时,如何获取“离开站点?所做的更改可能不会保存”

我填写的表单可以退出窗口而不会收到警告(我使用的是Chrome)。

如何确保退出前得到警告?是否有为此设置的Django?

javascript jquery

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