在IE8中,Window.open无法工作?

29

这是我目前使用的JavaScript代码:

window.open('/modules/mod_oneononechat/chatwindow.php?key='+key+'&color=blue','x'+winName+'x','location=0,status=0,toolbar=0,menubar=0,resizable=0,scrollbars=0,height=375,width=420');

这在IE8中似乎不起作用。这是一个在所有其他浏览器(包括IE7)中都正常工作的聊天窗口。有什么想法,为什么它在IE8上不起作用?


1
尝试关闭弹出窗口拦截器。 - Greg
尝试过了,不起作用! - nipun manglik
1
这是哪个版本的IE8?请参考http://support.microsoft.com/kb/164539/准确报告版本。 - Vineet Reynolds
那是MS IE8 RTM版本。所以你应该没问题。 - Vineet Reynolds
11个回答

71

IE8不喜欢窗口名称中有空格。


3
我也遇到了相同的问题。在 JavaScript 调试过程中,我收到了一个“无效参数”错误。连字符也不起作用,但下划线可以使用。 - William
没错,我也是这样的。 空格和破折号导致IE8拒绝打开请求。 感谢您节省了我许多浪费的时间。 - Mike Gledhill
我简直不敢相信IE有多糟糕...谢谢你。 - Mike Purcell
感谢上帝和像你这样的人。你救了我很多浪费的时间。+1 - rgin
3
对于IE7也是如此。 - James McMahon
1
我在问题中没有看到空格或破折号!!请回复。 - shareef

4
在IE8中,以下功能无法打开新的弹出窗口,而在Mozilla和Chrome中却能正常工作。
function openReports(reportUrl){
   window.open(reportUrl,'Report Information','height=800,width=1000,left=200,top=200,toolbars=no,resizable=no,scrollbars=auto,location=no');
}

从窗口名称中删除空格(报告信息),这也解决了我的问题。


将窗口名称中的空格删除也解决了我的问题。 - fermin

4
从窗口名称中删除空格解决了问题。

1

我也遇到了这个问题。我写了一个类似于以下的函数:

function newPopup(url) {
      popupWindow=window.open(url,'Detailed Informations','height=700,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}

在窗口名称中有空格的地方,例如“详细信息”,导致弹出窗口无法工作。请不要在窗口名称中加入任何空格。


1
这对我有效:
javascript:window.open('http://google.com', 'x'+'winName'+'x', 'location=0', 'status=0', 'toolbar=0', 'menubar=0', 'resizable=0', 'scrollbars=0', 'height=375', 'width=420');

1
var newWin = window.open('', '', 'width=400, height=400, top=100, left=100');

在IE8中,使用此方法时前两个参数必须为空,然后它才能在IE8上正常工作。

在我的情况下,我没有winName参数,因为我正在使用该脚本打开另一个网站。忽略该参数会在IE 7、8和9中使脚本中断。我不得不在URL参数和features参数之间使用''。感谢您提供的信息。 - Hasitha Guruge

1

window.open有三个参数:urlwindownameotherfeatures

对于 FF,如果第二个参数 (windowname) 没有传入,仍然可以工作 :)

但在我们测试的 IE 7,8 中,我们必须传递第二个参数。


0

如果您在IE中使用window.open()打开一个窗口,再次使用window.open()打开新窗口时,它将不会打开新窗口。

解决方法是,在window.open参数中传递此参数"copyhistory=no"

e.g:

WindowName = window.open('','Name','height=320,width=428,toolbar=no, 
     menubar=no,scrollbars=no, resizable=no,location=no, directories=no,    
     status=no,copyhistory=no');

希望这对你有所帮助。

0

如果您在窗口名称中使用空格或破折号,IE可能无法正常工作(至少我使用的某些版本如此)。


2
你也不能有斜杠。 - courtsimas

0

尝试从基本阶段开始使用window.open,例如window.open("/modules/mod_oneononechat/chatwindow.php"),并逐个添加参数。您将了解在IE8中何时/添加什么会使其停止工作。 - Umesh
如果基本功能本身无法正常工作,那么你至少可以得出结论是浏览器的设置问题。 - Umesh
我提出这种方法是因为从IE8开始,微软已经停止支持一些参数,并使用一些新的参数进行支持。因此,如果您正在使用旧的参数,它们将在IE8中抛出脚本错误。但是你说你没有收到任何错误! - Umesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接