沃梦达 / IT编程 / 前端开发 / 正文

javascript消除window.close()的提示窗口

要消除window.close()的提示窗口,我们需要了解以下几点:

要消除window.close()的提示窗口,我们需要了解以下几点:

  1. 当前窗口和弹出窗口必须为同一域名或者同源,否则无法关闭弹出窗口;
  2. 浏览器的安全策略会对window.close()进行限制。只有在窗口是由脚本打开的,才能使用window.close()关闭窗口。

下面我们来讨论在不弹出提示框的情况下,如何使用JavaScript关闭窗口。

方法一:使用window.opener

在打开弹出窗口的脚本中,我们可以将这个窗口的window对象存储在当前窗口的window对象中,使用window.opener可以获取到这个对象。要关闭弹出窗口,我们只需要在弹出窗口中调用window.opener.close()即可。

示例1:

在当前页面中打开弹出窗口:

var popup = window.open('popup.html', 'popup', 'width=320,height=240');

// 把window对象存储到当前的window.opener中
window.popup = popup;

在弹出窗口的脚本中调用window.opener.close()来关闭弹出窗口:

// 关闭window.opener,即当前窗口
window.opener.close();

方法二:使用window.parent

在打开弹出窗口的脚本中,我们可以将这个窗口的window对象存储在当前窗口的window对象中,使用window.parent可以获取到这个对象。要关闭弹出窗口,我们只需要在弹出窗口中调用window.parent.close()即可。

示例2:

同样在当前页面中打开弹出窗口,并把当前窗口的window对象存储到父窗口的window对象中:

var popup = window.open('popup.html', 'popup', 'width=320,height=240');
window.parentPopup = window;

在弹出窗口的脚本中调用window.parent.close()来关闭弹出窗口:

// 关闭window.parent,即父窗口
window.parent.close();

以上是两种常用的消除window.close()提示框的方法。但需要注意的是,由于浏览器的安全限制,这些方法并不适用于所有浏览器和所有情况。在使用时应根据具体情况做出决定。

本文标题为:javascript消除window.close()的提示窗口