Высота window.open в Google Chrome не такая, как в других браузерах - PullRequest
8 голосов
/ 12 августа 2010

Я использую javascript window.open, чтобы открыть окно браузера при щелчке пользователя с указанной шириной и высотой (760x581), и это правильно работает в Internet Explorer, Safari и Firefox, но Google Chrome вызывает у меня проблемы. В других браузерах высота правильно используется в качестве высоты содержимого, но в Google Chrome это делает фактическое окно браузера 581 пикселем в высоту вместо содержимого. Есть ли способ это исправить?

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

Ответы [ 3 ]

4 голосов
/ 14 октября 2010

Итак, я еще больше запутался и обнаружил, что некоторые браузеры поддерживают свойство innerHeight для window.open, и следующее работает, как и ожидалось, во всех браузерах с желаемой высотой содержимого в 775 пикселей, при добавлении 50 пикселей только в Chrome:

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

Я тестировал это в Chrome 6.0.472.63, Firefox 3.6, 3 и 2, IE 8 & 7 и Opera 10.62.Когда я использовал только height Chrome был бы примерно на 50 пикселей меньше и имел полосы прокрутки, но все браузеры выше были в порядке.С добавленным свойством innerHeight, установленным на 50px, больше, чем я хотел, оно работало в Chrome и во всех других браузерах.

Обновление: Похоже, это создает проблему в Safari сдобавленные 50px высоты.Будем искать способы обойти это.

1 голос
/ 03 декабря 2011

Проблема по-прежнему сохраняется (Chrome17 +), если вы вызываете window.open с height = 600, внутренняя высота окна результатов составляет 564 пикселя, что на 36 пикселей меньше (для строки заголовка в Windows).Высота строки заголовка зависит от платформы, поэтому это очень раздражает.

Мое решение - просто добавить разницу к высоте.

0 голосов
/ 12 августа 2010

Что я смог найти после поиска в Google более часа, так это то, как это делает Google Chrome, и мы должны просто использовать обходной путь. То, что я делаю прямо сейчас, если что-то лучшее не найдено, просто помещает следующую JS на открываемую мной страницу:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}
...