Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript window.open returns null in 32-bit IE8 on Win7 x64

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...

like image 248
Barrett Avatar asked Dec 01 '09 17:12

Barrett


2 Answers

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();}
}
like image 53
Jimmy Mattsson Avatar answered Sep 16 '22 23:09

Jimmy Mattsson


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.

like image 39
Ibrahim Avatar answered Sep 17 '22 23:09

Ibrahim