Включение полосы прокрутки браузера после 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");.

Это не фактическое решение, но оно решит вашу проблему в каждом браузере.

Надеюсь на эту помощь.