3

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

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

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

4

6 回答 6

0

你可以看看捕鼠器。它使键绑定相对简单。使用它,您可以执行以下操作:

Mousetrap.bind('esc', function(e) {
    window.location.history.back();
    // Or alternatively, window.close() to just close the window
    return false;
});
于 2013-02-12T02:38:22.643 回答
0

也许试试这个:

<a href="javascript:window.opener='x';window.close();">关闭</a>

于 2013-02-12T02:38:23.067 回答
0

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

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

于 2013-02-15T02:13:12.147 回答
0

据我所知,没有完全跨浏览器兼容的方式来关闭当前窗口。我建议做的只是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/';
    }
});
于 2013-02-12T02:42:12.657 回答
0

使用 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/

于 2013-02-12T02:43:59.747 回答
0

不会使用window.location.replace做的伎俩?

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

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

于 2013-02-12T02:39:53.350 回答