|
Модераторы: 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 Репутация: нет Всего: нет |
Подскажите как необходимо прописать скрипт, чтоб новое окно открывалось, а потом через определенное время исчезало (закрывалось).
Напишите, пожалуйста, пример такого скрипта. Спасибо. |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: нет Всего: 52 |
||||
|
||||
suzuka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Окно в общем то меняет цвет, работает как и положено. Но смущает один момент, просто показывает ошибку при открытие страницы. Пишет, что ошибка в строке 1. И как это понимать? Подскажите пожалуйста, в чем тут проблема. |
|||
|
||||
lonli |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.3.2007 Где: Москва Репутация: нет Всего: нет |
suzaka, если честно, я не понимаю как оно по твоему должно работать
1. Ты пытыешся вызвать ф-цию setcolor() с непредусмотренным аргументом это похоже прокатывает, в др. языках такое и компилироваться бы не стало. 2. Ошибка возикает по моему (проверять конкретно не стал) при попытке использовать name - неинициированную переменную. 3. При чём тут фреймы? Возможно ты хочешь чтобы цвет менялся во фреймах? а) у тебя 1 фрейм. б) для этого попробуй воспользоваться with. 4. document.close() - для чего? по моему после этого document.write("..."); работать не должно. Я по JS не специалист, сам недавно начал. Если что извеняйте. |
|||
|
||||
manipul |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 17.7.2007 Где: #Internet@ Репутация: нет Всего: нет |
Please, help me!
I cann't create modal window in Firefox. This is me code:
This is code work in IE! |
|||
|
||||
diAngel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 18.5.2007 Где: Москва Репутация: нет Всего: нет |
привет,а как написать код для такого окошка: на html страничке имеется много фото, нажимаешь на 1 фотку она увеличеваеться в новом окошке--пользователь посмотрел и закрыл пожалуйста помогите с этим кодом..оч надо
|
|||
|
||||
cruelangel |
|
|||
Опытный Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: нет Всего: 8 |
||||
|
||||
bork |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 98 Регистрация: 4.1.2008 Репутация: нет Всего: нет |
Помогите со скриптом. Есть пример, несколько ссылок, открывающие новые окна. При нажатии на ссылку открывается окно, при нажатии на другую, открывается новое окно, при этом предудущее окно минимизируется (сварачивается) как это и должно быть.
Как сделать чтобы минимизированное окно автоматически закрывалось? Вариант с проверкой, типа if (!newwindow.closed сложноват, так как у меня в конкретном примере много ссылок. Если есть предложения пишите, я думаю многие скажут спасибо, тема интересная.
|
|||
|
||||
InfMag |
|
|||
… Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: нет Всего: 4 |
Вот создаю окошко со входом на страничку, тут все популярно описывается как это сделать, а как создать окошко и с со страницы которая его создала забить в него контент нежели чем ссылаться на страницу? Я помню так делал, но не помню как. |
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
но это от лукавого |
|||
|
||||
Reasonsoul |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.8.2009 Репутация: нет Всего: нет |
Вот у меня тоже проблема с фреймами. Блуждание по страницам моего сайта организовано с помощью iфреймов (на главной два шт. + календарь архив). При выборе в календаре даты с новостью, в крайнем левом фрейме открывается анонс этой новости, заголовок которой является ссылкой на полный текс выбранной новости, так вот, проблема в том, что когда я нажимаю на заголовок анонса новости, страница с полным вариантом должна открываться в центральном фрейме, Но!!! почемуто, она открывается в новом окне!!!? При всем этом такой глюк происходит только с ИЕ (в опере и firefox все открывается там где надо) - какие причины могут быть этой ошибки в ИЕ? Подскажите пожалуйста.. (если нужна ссылка на сайт, для наглядности - в личном сообщении...).
Я использую в ссылке заголовка
|
|||
|
||||
priam220 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
как прочитать то что написано в статус баре? Есть window.status, но это для того, что бы туда что то занести. А прочитать как?
|
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
|
|||
|
||||
priam220 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
да я пробывал, не получается:
javascript:{var t = window.status; alert(t);} в файрфоксе и IE7 не работает. Вываливается пустой алерт... Что не так? |
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
||||
|
||||
priam220 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
Не вижу причин для неуверенности. Тот же алерт выскакивет. В Опере, к примеру, работает данный скрипт полностью... Может в ИЕ и ФФ действительно намутили с безопасностью, только с каких это пор статус стал содержать служебные данные? Да и установление пропертоса на запись в файрфоксе ситуацию не изменило.
|
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
с тех самых пор, когда придумали статус. это чисто служебная функция. и пользователей очень раздражает, если там показывается не обычная информация, вроде "готово", "поиск", адрес ссылки, а что-то отличное |
|||
|
||||
priam220 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
Ну пусть так... А почему не читает то? В опере работает, в ФФ и ИЕ нет.
|
|||
|
||||
JAYBE |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Если есть iframe сурс которого содержит страницу с того же домена, что и родительский, то как получить доступ к DOM-элементам внутри этого же iframe?
Как реализовать, чтобы документ, который загружается в iframe, автоматически уменьшался в размере под размер iframe? Это сообщение отредактировал(а) JAYBE - 5.10.2011, 16:53 |
|||
|
||||
Serious2008 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Здравствуйте. Подскажите пожалуйста. Вариант авторесайза iFrame, если нет возможности изменять тот источник с которого берём информацию. + кросбарузерность.
|
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
http://dklab.ru/chicken/nablas/58.html |
|||
|
||||
Serious2008 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Aliance,
вот какая проблема. Была у меня сказана, нет возможности изменять источник |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
При внимательном изучении статьи и всех ее ссылок, в итоге вы зашли бы сюда:
http://softwareas.com/cross-domain-communi...on-with-iframes |
|||
|
||||
alexFast777 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.9.2014 Репутация: нет Всего: нет |
На этом сайте есть немного информации по фреймам.
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |