Включение полосы прокрутки браузера после window.open с полосами прокрутки = нет
У меня есть существующая ссылка, которая открывает веб-страницу в новом окне с отключенными полосами прокрутки следующим образом:
<a onclick='window.open("example.html", "name", "resizable=1,scrollbars=no,width=500,height=200");' href='#'>Click to pop up without scroll bars</a>
Для аргументации я не могу изменить этот код window.open(). Мне нужно включить полосы прокрутки после того, как окно было открыто.
Это работает в IE, используя следующий код:
<script type="text/javascript">
onload=function()
{
enableScrolling();
}
function enableScrolling()
{
document.body.scroll = "yes"; // IE
}
</script>
Однако это не работает в FireFox или Chrome.
В соответствии с этой страницей следующий код должен работать для FireFox и Chrome, но это не так (возможно, это работало в более ранних версиях?)
document.documentElement.style.overflow='scroll';
document.body.style.overflow='scroll';
Кто-нибудь знает, можно ли включить полосы прокрутки в FireFox и Chrome после того, как окно было открыто с отключенными полосами прокрутки?
Ответы
Ответ 1
Как сказал Nikunj Soni, установка атрибута height
для вашего тега body
поможет вам решить проблему в каждом браузере. То, что я буду делать по-другому, следующее:
Вместо установки фиксированной высоты я бы установил height:100%
, которые позволят вам открыть всплывающее окно также в разных размерах, чем оригинал.
<body style="overflow:auto; height:100%;">
The rest of your HTML code
</body>
Это также не самое лучшее решение, но вы фактически удаляете остатки, которые вы получаете по ссылке.
Надеюсь, что этот ответ вам поможет.
Ответ 2
Поскольку вы добавляете js для IE, я предполагаю, что вы можете изменить способ отображения отображаемой страницы.
В этом случае я попытался бы поместить содержимое открытого окна в div и установить его стиль примерно так: height: 200px; переполнение: авто;
Ответ 3
На самом деле я пробовал с другим браузером. Если у вас есть фиксированное требование о высоте, то вы можете обернуть весь контент example.html в конкретный div с прикрепленным css, например overflow:auto;height:200px
, Я покажу вам весь код.
<body>
<div style="overflow:auto;height:200px;">
Your HTML code
</div>
</body>
поместите его в example.html. Высота, которую вы можете получить из своего кода window.open("example.html", "name", "resizable=1,scrollbars=no,width=500,height=200");
.
Это не фактическое решение, но оно решит вашу проблему в каждом браузере.
Надеюсь на эту помощь.