Javascript window.open returns null in 32-bit IE8

2019-02-17 02:11发布

I have read the related questions on this topic, but haven't yet found a solution to this issue. I have a simple javascript function that calls window.open when a link is clicked:

var newwindow;
function pop(url)
{
    newwindow=window.open(url,'','height=500,width=532');
    if (window.focus) {newwindow.focus();}
}

This works fine on Chrome, Firefox, and even works in 64-bit IE 8. However, when I try this in 32-bit IE 8 I get an error that 'newwindow' is null or not an object.

Any ideas on why this would occur only in 32-bit IE 8?

My hunch was that it was related to UAC in Windows 7 (I am running Win 7 x64), but I get the error even after turning Protected Mode off and running with Compatibility View on.

I also wonder why Windows 7 x64 comes with both the 32-bit and 64-bit versions of IE 8, and why the 32-bit version was pinned to my taskbar...

3条回答
相关推荐>>
2楼-- · 2019-02-17 02:51

Internet Explorer seems to return null if the url is outside your current domain. You can work around it by open an empty page first, then navigate the window to the actual url:

var newwindow;
function pop(url)
{
    newwindow=window.open('','','height=500,width=532');
    newwindow.location = url;

    if (window.focus) {newwindow.focus();}
}
查看更多
3楼-- · 2019-02-17 03:07

I don't know about your other issues, but the reason the 32 bit version is the more visible one by default is that most plugins still don't have 64 bit versions, eg. Flash, so the average user would be very confused when they can't get Youtube to work on their shiny new 64 bit system.

查看更多
三岁会撩人
4楼-- · 2019-02-17 03:07

I noticed something similar.

I have a window opened using IE function showModalDialog. On this window, I have a button that calls window.open. This call returns null. Then I opened the same page in normal window, not in modal dialog. This time the button returned null as well, but IE told me that web page wants to open pop-up window wand this was blocked. It gave me an option to unblock it... and it started working in both cases - modal and regular window.

It seems that in Modal mode in IE, IE does not show warnings like popup blocked.

查看更多
登录 后发表回答