Как сделать window.open без полос прокрутки в Google Chrome

Следующий код открывает новое окно без полос прокрутки в Firefox, IE и Opera.

    var options = {
        height: 300, // sets the height in pixels of the window.
        width: 300, // sets the width in pixels of the window.
        toolbar: 0, // determines whether a toolbar (includes the forward and back buttons) is displayed {1 (YES) or 0 (NO)}.
        scrollbars: 0, // determines whether scrollbars appear on the window {1 (YES) or 0 (NO)}.
        status: 0, // whether a status line appears at the bottom of the window {1 (YES) or 0 (NO)}.
        resizable: 1, // whether the window can be resized {1 (YES) or 0 (NO)}. Can also be overloaded using resizable.
        left: 0, // left position when the window appears.
        top: 0, // top position when the window appears.
        center: 0, // should we center the window? {1 (YES) or 0 (NO)}. overrides top and left
        createnew: 0, // should we create a new window for each occurance {1 (YES) or 0 (NO)}.
        location: 0, // determines whether the address bar is displayed {1 (YES) or 0 (NO)}.
        menubar: 0 // determines whether the menu bar is displayed {1 (YES) or 0 (NO)}.
    };

    var parameters = "location=" + options.location +
                     ",menubar=" + options.menubar +
                     ",height=" + options.height +
                     ",width=" + options.width +
                     ",toolbar=" + options.toolbar +
                     ",scrollbars=" + options.scrollbars +
                     ",status=" + options.status +
                     ",resizable=" + options.resizable +
                     ",left=" + options.left +
                     ",screenX=" + options.left +
                     ",top=" + options.top +
                     ",screenY=" + options.top;

    // target url
    var target = 'some url'  

    popup = window.open(target, 'popup', parameters);

В Google Chrome новое окно все еще имеет полосы прокрутки. Какие-либо идеи заставить его работать?

14
задан Mathias Bynens 3 January 2010 в 14:46
поделиться

4 ответа

Этот стиль должен сделать трюк, добавить его к открытому окну документа:


body{ overflow-x:hidden;overflow-y:hidden; }
22
ответ дан 1 December 2019 в 10:02
поделиться

Ты не должен удалять полосы прокрутки. Если у меня настроен безумно большой шрифт и я не знаю других способов прокрутки, кроме панелей прокрутки, я не смогу просмотреть содержимое всплывающего окна. То же самое касается и переполнения : скрытого . Просто не делайте этого, так как нет способа убедиться, что содержимое страницы поместится в точный размер. Панели прокрутки не появляются по умолчанию, если страница не переполнена, так что ваша проблема, скорее всего, ваше всплывающее окно слишком маленькое для страницы, которую вы загружаете в него. Кроме того, большинство людей ненавидят всплывающие окна, так что вы можете попробовать менее навязчивый подход, такие как небольшие, но богато окрашенные окна, чтобы привлечь внимание пользователя.

.
4
ответ дан 1 December 2019 в 10:02
поделиться

У него есть полосы прокрутки, потому что ему нужны полосы прокрутки. Ваш контент может быть слишком большим, чтобы отображаться без панелей прокрутки. Рассмотрим возможность обернуть его в элемент (например, div) со стилем="переполнение: скрыто".

.
0
ответ дан 1 December 2019 в 10:02
поделиться

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

Кроме того, многие инструменты на системах в настоящее время предотвращают или блокируют всплывающие окна, так что шансы против вашего всплывающего окна на многих уровнях.

Рекомендация

Рекомендуется высмеивать всплывающее окно, используя DOM (например, используя DIV в стиле всплывающего окна). Многие сайты перемещаются таким образом, чтобы обойти блокировщики всплывающих окон.

В Интернете есть много примеров. Например, использование JavaScript для создания всплывающих окон, использование jQuery API для создания всплывающих окон jQuery является слоем JavaScript поверх JavaScript и предоставляет некоторые неявные возможности совместимости с кросс-браузерами.

Вы сможете прокручивать внутри насмешливого всплывающего окна, используя CSS

div {
width:150px;
height:150px;
overflow:scroll;
/* etc... */
}

или подавить его overflow:hidden;

1
ответ дан 1 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: