Рядом с вашим сценарием, который открывает дочернее окно (тот, в котором вы устанавливаете полосы прокрутки = да или нет), добавьте переменную уровня окна, которая равна true, если scrollbars = да, или false, если нет.
Затем в скрипте вашего дочернего окна вы найдете значение, которое было установлено из self.opener.myWindowLevelVariable
.
Вы также можете указать пространство имен переменной.Важной частью является self.opener или window.opener, если вы предпочитаете.
Обновление:
В ответ на ваше обновление о нежелании использовать переменную в родительском элементе... Тогда отмени мое первоначальное предложение.Поместите переменную в дочерний элемент, когда он будет создан.
Родитель:
var scrollwindow = window.open("file.htm", "anotherwindow", "width=400,height=250,scrollbars=no");
scrollwindow.hasScrollbars = false;
Ребенок:
alert(hasScrollbars);
Если вы хотите обработать случай, когда дочернее окно открыто напрямую, то оно становится более интересным ...
Ребенок:
try {
// do something with hasScrollbars
// If it isn't true or false, ie undefined, using it will throw you into the catch.
alert(hasScrollbar);
} catch (e) {
// scrollbars weren't explicitly added or forbidden, so they'll automatically
// show up if the content is larger than the window. In this case, use a
// scrollbar sniffing technique.
var hasVerticalScrollbar = document.body.scrollHeight > document.body.clientHeight;
var hasHorizontalScrollbar = document.body.scrollWidth > document.body.clientWidth;
}
Обнаружение полосы прокрутки: Я думаю, это то, к чему стремился Стефано.Он был на правильном пути.Но используйте clientWidth, scrollWidth, clientHeight и scrollHeight в комбинации.Из режима quirks :
Если элемент не имеет полос прокрутки, scrollWidth / Height должен быть равен clientWidth / Height.
Когда элемент не имеет полос прокрутки, которые IE создаетвысота scrollHeight равна фактической высоте содержимого;а не высота элемента. scrollWidth является правильным, за исключением IE8, где он отключен на 5 пикселей.
Итак, вам придется немного отрегулировать часть перехвата полосы прокрутки для IE, но это основнойидея.