为什么<script> window.opener ='x'; window.close(); </script>在Firefox中不起作用

时间:2012-05-23 05:06:21

标签: javascript jquery window.closed

我找到了这段代码并且一直在使用它来自动关闭窗口...它在Chrome中完美运行,

我怎样才能在Firefox中执行此操作?或者有更好的方法来关闭当前窗口吗?

2 个答案:

答案 0 :(得分:5)

它在FF中不起作用,因为它是按设计的。

你只能close window opened by your script。即使你现在可能找到一个让它工作的技巧,但是一旦FF在下一版本中修补它,你的脚本将再次停止工作。

我的建议是改变你的页面设计。也许使用模态窗口或div

答案 1 :(得分:1)

你应该尝试这个技巧

How to close a window or tab in FireFox with Javascript

  

第一步是欺骗浏览器以为它已被打开   用脚本......

window.open('','_parent','');
     

这会在目标框架/窗口中打开一个新页面(不存在),   (_parent当然是脚本所在的窗口   执行),并定义窗口大小等参数(在此   case none无法定义为none。现在浏览器认为   一个脚本打开了一个页面,我们可以用标准方式快速关闭它......

window.close();
     

你有它 - 我告诉你这很简单!如果你没有   接下来,这是完整的解决方案,只需两个简单的步骤:

     
      
  1. 将以下代码复制/粘贴到页面的头部......
  2.   
    <script language="javascript" type="text/javascript">
     function closeWindow() {
     window.open('','_parent','');
     window.close();
     }
     </script>
  
      
  1. 设置您的链接:
  2.   
<a href="javascript:closeWindow();">Close Window</a>

or like this:
<input type="button" value="Close Window" onclick="closeWindow()"/>