【问题标题】:javascript open and closing of current windowjavascript打开和关闭当前窗口
【发布时间】:2013-02-12 02:32:50
【问题描述】:

我的工作是为受虐妇女建立一些网站。他们请求了一个“Escape”按钮以快速离开页面,以防他们进入。

他们给我的示例要么是普通链接(您可以单击“返回”并返回上一页),要么是带有弹出窗口和新窗口的复杂解决方案,但仍会导致简单的“返回”以查看它们所在的位置.就个人而言,我认为这两个都不是一个好主意。我已经搜索并尝试了几种关闭当前窗口并打开另一个窗口的方法,但我无法找到适用于主要浏览器的解决方案。如果有人知道如何执行此操作或对如何解决他们的问题有更好的想法,我将不胜感激。

这篇文章 (Html javascript to open new window and close current window) 在 chrome 中工作,但不幸的是我需要它至少在 IE、Firefox 和 Chrome 中工作。

【问题讨论】:

  • 有趣,有价值的事业!

标签: javascript browser-history


【解决方案1】:

您可以查看Mousetrap。它使键绑定相对简单。使用它,您可以执行以下操作:

Mousetrap.bind('esc', function(e) {
    window.location.history.back();
    // Or alternatively, window.close() to just close the window
    return false;
});

【讨论】:

    【解决方案2】:

    不妨试试这个:

    关闭

    【讨论】:

      【解决方案3】:

      不会使用window.location.replace 来解决问题吗?

      http://jsfiddle.net/atesgoral/xS3q5/

      点击浏览器的后退按钮不会返回上一页,因为历史记录会被覆盖。

      【讨论】:

      • 谢谢,但这似乎适用于 Chrome,但不适用于 FF 或 IE。不过,这似乎是一个很好的建议。每个浏览器都有一些脚本可以运行,所以我想我可以有三个不同的按钮并测试这个人正在使用什么浏览器,并在他们的特定浏览器中显示一个工作?不过,这似乎是一种糟糕的 hacky 方式来做我想做的事。
      【解决方案4】:

      据我所知,没有完全跨浏览器兼容的方式来关闭当前窗口。我建议做的只是让Esc 导航到其他网站或页面。您可以在您的网站上创建一个页面,显示来自 Google 新闻或其他内容的随机文章,或者您可以直接去那里。除非您的网站被称为battered-women.com 或其他名称,否则它可能会达到与完全关闭窗口相同的效果。

      document.addEventListener('keydown', function (e) {
          var key = e.keyCode ? e.keyCode : e.which;
          if (key == '27') {
              //destroy all visible content in case new page takes a long time to load
              document.getElementsByTagName('body').innerHTML = '';
              window.location = 'http://news.google.com/';
          }
      });
      

      【讨论】:

        【解决方案5】:

        使用 JavaScript 将整个页面替换为空白 div 怎么样?需要更改页面的解决方案的问题是您无法控制网络延迟。从页面中删除所有内容将是您完全控制的事情。

        下面的解决方案仅显示了一个 100% 高度和宽度的 div,其位置固定,隐藏了页面上的任何内容。当页面隐藏时,您可以安全地更改位置,而无需担心加载时间。

        <div id="HideMe" style="display: none; position: fixed; width: 100%; height: 100%; background-color: #fff">&nbsp;</div>
        <a href="#" id="escape">Escape!</a>
        

        和

        $("#escape").on("click",function(){
            $("#HideMe").show();
            location.href = "/*New URL*/";
        });
        

        http://jsfiddle.net/ySq8L/

        【讨论】:

          【解决方案6】:

          在我们几个人(和互联网)之间,我们找不到他们正在寻找的一个很好的解决方案。在与客户进行了更多讨论后,我们同意建立一个指向中性页面的标准链接,但包括关于其在线安全的免责声明以及如何进行隐私浏览的链接。它并不像我们任何人希望的那样优雅,但它是迄今为止我们最好的解决方案。

          感谢您的建议,有些人有一些不错的承诺,但没有完全得到客户想要的。

          【讨论】:

            猜你喜欢
            • 2021-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-07-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多