|
Модераторы: Sardar, Aliance |
|
Aliance |
|
||||||||||||||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Генерируемые новые ОКНА ПРЕДИСЛОВИЕ. Не путать с популярной программой «Окна» ВСТУПЛЕНИЕ. И как обычно, видя растущее в геометрической прогрессии число вопросов, связанных с работой с окнами, я решил написать следующую статью, посвященную этой теме :-) К сожалению, многие злоупотребляют работой с окнами. В результате появляется пугающая реклама, сильно раздражаюшая пользователей. Но к счастью в наше время появились блокировщики всплывающей рекламы, хотя они так же несут собой и негативный фактор: безвредное окно они тоже блокируют. ЧЕГО ДЕЛАТЬ НЕЛЬЗЯ!!! (своеобразный ЧаВо, всем новичкам перечитать несколько раз)
Для создания нового окна используется метод window.open(), аргументами которого являются: URL загружаемой страницы, имя окна, параметры окна и четвертый аргумент* (все четыре - необязательные.) (Четвертый аргумент open() полезен, только если второй аргумент предствавляет собой имя уже существующего окна. Этот 4ый аргумент - boolean, определяющее, должен ли URL, указанный в первом аргументе, заменять текущую запись в истории просмотра окна (true), или должна быть создана новая запись (false) - последнее выбирается по умолчанию.) Вот все параметры окна: Атрибут NN IE Описание alwaysLowered 4 - Окно всегда над другими alwaysRised 4 - Окно всегда под другими channelMode - 4 Показывать содержимое на панели каналов copyhistory 2 - Перенести новое окно в историю из текущего dependent 4 - Дочернее окно закроется при закрытии родительского directories 2 3 Показать в новом окне кнопки папок fullscreen - 4 Не отображать заголовой и меню height 2 3 Размер содержимого окна в пикселях hotkeys 4 - Отключить клав. сокращения (кроме Quit и Sequrity Info) innerHeight 4 - Высота содержимого. innerWidth 4 - Ширина содержимого. left 6 4 Смещение левой границы окна относительно границы экрана location 2 3 Отображать поле адреса menubar 2 3 Отображать строку состояния outerHeight 4 - Наружная ширина окна outerWidth 4 - Наружная ширина окна resizeble 2 3 Разрешать польз. менять размер окна screenX 4 - Смещение левой границы окна от границы экрана screenY 4 - Смещение верхней границы окна от границы экрана scrollbars 2 3 Отображать полосы прокрутки status 2 3 Отображать строку состояни titlebar 4 - Отображать строку меню. toolbar 2 3 Отображать панель инструментов top 6 4 Смещение верхней границы окна относительно границы экрана width 2 3 Ширина содержимого. z-lock 4 - Новое окно фикс. под прочими окнами. Пример:
Небольшая подсказка: нажав на F11 в окне без адресной строки, Вы развернете его на полную, увидев адрес и панель инструментов ПРАКТИКА. Для управления размерами окна есть 2 метода объекта window - resizeBy() и resizeTo() Для перемещения окна есть 2 метода объекта window - moveBy() и moveTo() Примеры, для развертывания окна на полную используем такой код:
Часто требуется центрировать окно по центру экрана, для этой задачи есть простое решение:
Вывод окна на передний план:
ОБМЕН ИНФОРМАЦИИ С РОДИЛЬНЫМ ОКНОМ. Например, у Вас есть форма регистрации, и вы хотите вывести все заполненые юзером поля в новое окно для их просмотра, тогда делаем это так (данная функция должна находиться в дочернем окне, там же должна находиться форма с именем f11 и текстовое поле с именем name, соотв. в главном окне - форма f1 и поле nameMain):
Пример использования "приветствия от юзера" с помощью модального окна:
hello.html
Это сообщение отредактировал(а) Aliance - 21.3.2005, 01:44 |
||||||||||||||
|
|||||||||||||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Заметим что параметры:
доступны только из подписанных скриптов, другими словами нужен сертификат с подтверждением юзера. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Sardar
Не только, innerHeight/Width, outerHeight/Width, screenX/Y, z-lock и titlebar. Это сообщение отредактировал(а) Aliance - 15.3.2005, 21:40 |
|||
|
||||
Aliance |
|
||||||||||||||||||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
ФРЕЙМЫ ВСТУПЛЕНИЕ. Реализации стандарта XHTML исключают фреймы из команд разметки документа, также ссылки и формы не могут иметь атрибут target (если придерживаться этому стандарту). Хотя спецификация XHTML и включает в себя версию-исключение, включающую в себя фреймы (XFrames). В тоже времемя, любой программист, не приследующий цель соответствия стандарту XHTML, может смело использовать фреймы, т.к. практически любой браузер их поддерживает. Изначально каждый фрейм рассматривался как окно (все таки, фрейм, как и окно, является контейнером для документа), поэтому большинство свойств и методов, имеющихся у обекта window, присутствуют и у фрейма. ЧЕГО ДЕЛАТЬ НЕЛЬЗЯ!!!
(т.к. картинка нарисована мною "от руки", некоторые надписи могут быть непонятны, если что - обращайтесь, разъясню): Обращаться к фрейму можно несколькими способами, вот самые распространненые:
Примеры: Обращение к глобальной переменной myVar, объявленной в главном документе, выглядит так:
Переход на опр. страницу:
Еще очень полезной может оказаться следующая функция (она экономит время при смене дизайна)
Сценарий во фрейме может прокрутить содержимое второго фрейма в начало страницы так:
Сценарий может сделать ссылку на любой объект:
NB: нужно только не забыть сделать ссылку на документ после ссылки на нужный фрейм Чтобы получить ссылку на документ фрейма есть 2 специальных свойства фреймов: contentDocument (W3C DOM) и contentWindow (IE DOM), и если нужна совместимость этих моделей, то можно написать простую функцию получения непосредственно документа:
Сценарий может динамически сгенерировать контекст фрейма:
Ну и еще одна функция для любителей самообороны 8))
Это сообщение отредактировал(а) Aliance - 19.3.2005, 20:26 |
||||||||||||||||||
|
|||||||||||||||||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Вот полезный код, динамически изменяющий ширину навигационного фрейма: смотреть
|
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
||||
|
||||
butionok |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 125 Регистрация: 19.1.2005 Репутация: нет Всего: 3 |
Решил применить.... И оказалось, что нормально работает только в IE NN и Firefox ругаются, но показывают Error: uncaught exception: Permission denied to get property Window.createFrame Opera ругается и не показывает javascript:parent.createFrame() Javascript URL thread: "javascript:parent.createFrame()" Error: name: ReferenceError message: Security error: attempted to read protected variable Может кто знает альтернативный метод динамического генерирования фреймов, который будет работать во всех броузерах? --------------------
Ненавижу убогую Оперу. |
||||
|
|||||
Sardar |
|
||||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
У меня код в ИЕ(6.0 SP2) не заработал.
Сними фрейм по ID, отдай этой функции:
Получишь document, далее либо write, либо DOM'овскими методами. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
У меня в том же все прекрасно работает Чудеса |
|||
|
||||
Гость_12345 |
|
|||
Unregistered |
Проверил в 3 браузерах, Опера 7.54 наиболее кривая - никакими средствами не исполняет загрузку в фрейм, даже после создания:
FF 1.06 имеет баг с нечувствительностью фрейма к onLoad при рефреше (см. убранные варианты onLoad). IE6 SP2 работает при всех вариантах. |
|||
|
||||
Гость_12345 |
|
|||
Unregistered |
Помню, в древности от такой загрузки пришлось отказаться из-за крупных проблем с NN4 и 3 и грузить из отдельных страниц.
|
|||
|
||||
Elfet |
|
|||
Белый и Пушистый Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Глюк! Никак понять не могу! Ошибка:Объект не поддерживает это свойство или метод
Это сообщение отредактировал(а) Elfet - 10.2.2006, 21:21 |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
А структуру фреймов и код фрейма bar ты нам не хочешь показать?
|
|||
|
||||
Greendrake |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 364 Регистрация: 14.7.2005 Репутация: нет Всего: 6 |
В опере 8.5 пишет null. Как с этим бороться? |
||||||
|
|||||||
Yuriy_G |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 31.12.2006 Репутация: нет Всего: нет |
Подскажите как необходимо прописать скрипт, чтоб новое окно открывалось, а потом через определенное время исчезало (закрывалось).
Напишите, пожалуйста, пример такого скрипта. Спасибо. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |