Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从浏览器选项卡的原点关闭浏览器选项卡_Javascript_Html_Browser - Fatal编程技术网

Javascript 如何从浏览器选项卡的原点关闭浏览器选项卡

Javascript 如何从浏览器选项卡的原点关闭浏览器选项卡,javascript,html,browser,Javascript,Html,Browser,我可以打开一个新选项卡,然后从其父选项卡关闭它,操作如下: <a id="mylink" href="javascript:" onclick="mynewwindow = window.open('https://www.google.co.in');" target="_blank">Sample Code</a> <a href="javascript:" onclick="closemywindow();">close</a>

我可以打开一个新选项卡,然后从其父选项卡关闭它,操作如下:

<a id="mylink" href="javascript:" onclick="mynewwindow = window.open('https://www.google.co.in');" target="_blank">Sample Code</a>
    <a href="javascript:" onclick="closemywindow();">close</a>
    <script>
        var mynewwindow;
        function closemywindow(){
            mynewwindow.close();
        }
</script>
window.windowKey=guid();
var m=/[\?&]windowKey=([^\?&]+)/.exec(document.location.href);
if (m) window.windowKey=m[1];

var-mynewwindow;
函数closemywindow(){
mynewwindow.close();
}

但是,如果通过上下文菜单或使用滚动打开新选项卡,我如何关闭该新选项卡?

window.open的结果只是对窗口的另一个引用。在页面中,您只需使用window.close即可

请注意,如果它是唯一打开的选项卡,它可能会要求用户允许关闭窗口

多亏了Darren的评论,我理解您可能希望从中心点关闭窗口。这可以与外部web服务一起使用。您的链接可以在表单中,然后新页面可能会定期连接到中心点,并查看是否需要关闭。从原始页面,您可以指示服务“关闭由此打开的所有窗口”。在此上下文中,“thispage”将是一个随机生成的键,用于标识打开的页面

如果您只想在当前浏览器上执行此操作,您甚至可能不需要使用web服务,而是使用

下面是一些代码(测试html文件名为test13.html-适当更改名称):


无法关闭不是使用window.open()创建的窗口。这将是一个非常糟糕的行为,例如,因为这样做会删除选项卡历史记录。该选项卡属于用户,而不是您


一个解决方案是,在所有页面上都有一个脚本,该脚本有一个计时器,可以关闭窗口,除非页面上有鼠标事件

document.addEventListener("DOMContentLoaded", function(event) { 
   var timeoutID;
   timeoutID = window.setTimeout(closeWindow, 2000);
   document.addEventListener('mousemove', clearAlert, false);

   function clearAlert() {
      window.clearTimeout(timeoutID);
      document.removeEventListener('mousemove', clearAlert, false);
   }
   function closeWindow() {
      window.close();
   }
});

我不完全确定它是否有效,但它也可能总是关闭手机上的窗口,或者浏览器在切换到选项卡之前不会执行脚本。这不起作用-他想知道如何从打开选项卡的页面中关闭选项卡(例如右击并在新选项卡中打开)(相信这就是他所希望的。)我添加了一些代码来解决问题,但我认为这不是一个好的设计。不过,如果你不打开与另一个浏览器实例的链接,这是可行的。
document.addEventListener("DOMContentLoaded", function(event) { 
   var timeoutID;
   timeoutID = window.setTimeout(closeWindow, 2000);
   document.addEventListener('mousemove', clearAlert, false);

   function clearAlert() {
      window.clearTimeout(timeoutID);
      document.removeEventListener('mousemove', clearAlert, false);
   }
   function closeWindow() {
      window.close();
   }
});