Question

I am using javascript's window.open to open a browser window on a user click at a specified width and height (760x581), and this works correctly on Internet Explorer, Safari, and Firefox, but Google Chrome is giving me issues. In the other browsers, the height is correctly used as the height of the content, but in Google Chrome it is making the actual browser window 581 pixels tall instead of the content. Is there a way to fix this?

<a href="http://domain.com/example.php" onclick="window.open('http://domain.com/example.php', '', 'width=760, height=581, top=15, left=15, toolbar=0, menubar=0, scrollbars=1, resizable=1, copyhistory=0, location=0, directories=0, status=1, titlebar=1, personalbar=0');return false">click here</a>
Was it helpful?

Solution

So I messed with things more and discovered that some browsers supported the property innerHeight for window.open and the following worked as expected in all browsers with the desired content height at 775px with 50px added to Chrome only:

window.open($(this).attr('href'), 'videoplayer',
   'width=1242, height=775, innerHeight=825, location=no, menubar=no, status=no, titlebar=no, scrollbars=no'
);

I tested this in Chrome 6.0.472.63, Firefox 3.6, 3, and 2, IE 8 & 7, and Opera 10.62. When I was only using height Chrome would be about 50px too short and have scrollbars but all the browsers above were fine. With the added innerHeight property set at 50px more than what I want it worked in Chrome as well as all other browsers.

Update: It looks like this creates a problem in Safari with an added 50px of height. Will look into ways to get around that.

OTHER TIPS

The problem still persists (Chrome17+), if you call window.open with height=600, the result window innerheight is 564px, which is 36px short (for the title bar on Windows). The title bar height is platform dependent so this is very annoying.

My solution is just added the difference to the height.

Well from what I've been able to find after searching Google for over an hour is that this is just how Google Chrome does it and we have to just use a workaround. What I am doing right now unless something better is found is just putting the following JS on the page that I am opening:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top