用于关闭其他标签或浏览器的脚本

时间:2015-03-23 21:26:59

标签: javascript

在我为销售开发的MVC应用程序中,我有一个按钮,用于打开一个不允许在新标签页中打开iframe的网页。因此,当销售代理使用此按钮时,他们通常不会关闭应用程序打开的选项卡,并且在一天结束时,有20-30个打开的选项卡。所以,我想知道是否有一个脚本我可以添加到一个可以关闭的新按钮:

  1. 包含所有标签的完整浏览器,以便他们可以重新开始或
  2. 关闭所有其他标签而不影响当前标签。
  3. 在视图中,我有

    HTML

    <input type="submit" onclick="return OpenInNewTab('http://test.com');" name="command" value="nonIframe" background-image:url(../images/URL/Test.png);" class="submit" />
    

    的Javascript

    //Function OpenInNewTab
    function OpenInNewTab(url) {
        var win = window.open(url, '_blank');
        win.focus();
        return false;
    }
    

    我正在使用此脚本,但它只关闭当前标签。我希望当前标签打开并关闭所有其他标签或关闭整个浏览器本身。

    的Javascript

    <script language="JavaScript">
        function closeIt() {
            close();
        }
    </script>
    

    HTML

    <center>
        <form>
            <input type=button value="Close Window" onClick="closeIt()">
        </form>
    </center>
    

    任何建议都会非常感激。 谢谢

3 个答案:

答案 0 :(得分:12)

如果你有手柄,你只能关闭窗户。这意味着你的页面必须是打开它们的页面(或者你以某种方式传递了句柄)。

示例:

var winGoogle = window.open('http://google.com', '_blank');
var winBing = window.open('http://bing.com', '_blank');
var winYahoo = window.open('http://yahoo.com', '_blank');

//close the windows
winGoogle.close();
winBing.close();
winYahoo.close();

您可以将这些新窗口存储在一个数组中,并在需要关闭它们时迭代句柄。

var windows = [];
//each time you open a new window, simply add it like this:
windows.push(window.open('http://google.com', '_blank'));

//then you can iterate over them and close them all like this:
for(var i = 0; i < windows.length; i++){
    windows[i].close()
}

答案 1 :(得分:2)

HTML:

window.open('', '_self', '').close();

的javascript:

{{1}}

IT会在不提示权限的情况下关闭当前标签页。

答案 2 :(得分:0)

以穆罕默德·穆斯塔克(Mohamed Musthaque)的出色回答为基础...我想打开一个新选项卡,然后关闭当前选项卡。这在Chrome中完美做到了

<a href='https:...'
  onclick='window.open(this.href); window.open("", "_self", "").close(); return false;'> 
  Open new tab, close this one
</a>