window.open height isn't the same in Google Chrome as other browsers

六月ゝ 毕业季﹏ 提交于 2019-12-09 16:30:56

问题


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>

回答1:


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.




回答2:


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.




回答3:


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);
}


来源:https://stackoverflow.com/questions/3462374/window-open-height-isnt-the-same-in-google-chrome-as-other-browsers

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!