javascript打开和关闭当前窗口

时间:2013-02-12 02:32:51

标签: javascript browser-history

我的工作是为受虐妇女建立一些网站。他们要求使用“逃生”按钮快速离开页面以防他们进入。

他们给我的例子是一个普通的链接(你可以点击“返回”并在上一页)或者一个复杂的解决方案,弹出窗口和新窗口仍然会导致一个简单的“后退”,看看他们在哪里。就个人而言,我认为这些都不是一个好主意。我已经搜索并尝试了几种关闭当前窗口并打开另一种窗口的方法,但我找不到适用于主流浏览器的解决方案。如果有人知道如何做到这一点或对如何解决他们的问题有更好的想法,我会很感激。

这篇文章(Html javascript to open new window and close current window)适用于chrome,但遗憾的是我需要它才能在IE,Firefox和Chrome中运行。

6 个答案:

答案 0 :(得分:0)

您可以查看Mousetrap。它使得键绑定相对简单。使用它,你可以做这样的事情:

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

答案 1 :(得分:0)

也许试试这个:

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

答案 2 :(得分:0)

不会使用window.location.replace做这个伎俩吗?

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

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

答案 3 :(得分: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/';
    }
});

答案 4 :(得分:0)

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

下面的解决方案仅显示具有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/

答案 5 :(得分:0)

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

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