Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ОКНА и ФРЕЙМЫ, Учимся работать 
:(
    Опции темы
Aliance
  Дата 5.3.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Генерируемые новые ОКНА


ПРЕДИСЛОВИЕ.

Не путать с популярной программой «Окна» smile

ВСТУПЛЕНИЕ.

И как обычно, видя растущее в геометрической прогрессии число вопросов,
связанных с работой с окнами, я решил написать следующую статью, посвященную этой теме :-)

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

ЧЕГО ДЕЛАТЬ НЕЛЬЗЯ!!! (своеобразный ЧаВо, всем новичкам перечитать несколько раз)
  • Изменение параметров главного окна. Нельзя добавлять или убирать элементы оформления
    главного окна - строку меню, полосы прокрутки, строку состояния, панель инструментов и т.п.
    *Исключение состовляет NN4+, где сценарии могут делать данные операции, но только с
    разрешения пользователя!
  • Закрытия родительского окна из сценариев в дочернем. Если попытаться вызвать
    метод opener.close(), пользователь увидит предупреждение для разрешения на данную операцию.
  • Изменение настроек браузера. Опять же, с разрешения пользователя это можно сделать только в NN4+
  • Перехват активации (или срабатывания) кнопок браузера. Операции с кнопками браузера: вперед/назад, печать ...
  • Изменение или удаление записей в Избранном (закладки). Исключение состовляет возможность IE
    window.external.addFavorite(), но опять же следует получить разрешение у пользователя.
  • Изменения адреса страницы. Нельзя изменить адрес, можно только загружить новую страницу методом location.href
  • Доступ к свойствам документа с других доменов.
  • Закрытие окон, открытых другими сценариями.
НАЧАЛО.

Для создания нового окна используется метод 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 - Новое окно фикс. под прочими окнами.

Пример:
Код

window.open("http://forum.vingrad.ru","VinFor","status=no,location=1");


Небольшая подсказка: нажав на F11 в окне без адресной строки, Вы развернете его на полную, увидев адрес и панель инструментов

ПРАКТИКА.

Для управления размерами окна есть 2 метода объекта window - resizeBy() и resizeTo()
Для перемещения окна есть 2 метода объекта window - moveBy() и moveTo()

Примеры, для развертывания окна на полную используем такой код:

Код

function maximizeWindow() {
    var offset = (navigator.userAgent.indexOf("Mac") != -1 || 
                  navigator.userAgent.indexOf("Gecko") != -1 || 
                  navigator.appName.indexOf("Netscape") != -1) ? 0 : 4;
    window.moveTo(-offset, -offset);
    window.resizeTo(screen.availWidth + (2 * offset), screen.availHeight + (2 * offset));
}


Часто требуется центрировать окно по центру экрана, для этой задачи есть простое решение:

Код

var myWindow;
function openCenteredWindow(url) {
    var width = 400;
    var height = 300;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + 
        ",status,resizable,left=" + left + ",top=" + top + 
        "screenX=" + left + ",screenY=" + top;
    myWindow = window.open(url, "subWind", windowFeatures);
}


Вывод окна на передний план:

Код

var newWindow;
function makeNewWindow(url) {
    if (!newWindow || newWindow.closed) {
        newWindow = window.open(url,"subwind","status,height=200,width=300");
    } else {
        // окно уже существсует => просто передаем ему фокус
        newWindow.focus();
    }
}


ОБМЕН ИНФОРМАЦИИ С РОДИЛЬНЫМ ОКНОМ.

Например, у Вас есть форма регистрации, и вы хотите вывести все заполненые юзером поля в новое окно для их просмотра, тогда делаем это так (данная функция должна находиться в дочернем окне, там же должна находиться форма с именем f11 и текстовое поле с именем name, соотв. в главном окне - форма f1 и поле nameMain):

Код

document.forms["f11"].name.value = opener.document.forms["f1"].nameMain.value;


Пример использования "приветствия от юзера" с помощью модального окна:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Привествие</title>
<script type="text/javascript">
function openDialog(form) {
    var result = window.showModalDialog("hello.html", form, "dialogWidth:300px; dialogHeight:201px; center:yes");
}
</script>
</head>
<body>

<form name="sample" action="#" onsubmit="return false">
Имя: <input name="yourName" type="text" />
<input type="button" value="Послать" onclick="openDialog(this.form)" />
</form>
</body>
</html>


hello.html
Код

<html>
<head>
<title>Приветствие в МОДАЛЬНОМ ОКНЕ (IE only)</title>
</head>
<body>
<script type="text/javascript">
document.write("Вам привет от " + window.dialogArguments.yourName.value + "!");
</script>
</body>
</html>


Это сообщение отредактировал(а) Aliance - 21.3.2005, 01:44
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 9.3.2005, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Заметим что параметры:
Цитата(Aliance @ 5.3.2005, 22:12)
alwaysLowered 4
alwaysRised

доступны только из подписанных скриптов, другими словами нужен сертификат с подтверждением юзера.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 10.3.2005, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 19.3.2005, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



ФРЕЙМЫ

ВСТУПЛЕНИЕ.
Реализации стандарта XHTML исключают фреймы из команд разметки документа, также ссылки и формы не могут иметь атрибут target (если придерживаться этому стандарту).
Хотя спецификация XHTML и включает в себя версию-исключение, включающую в себя фреймы (XFrames).
В тоже времемя, любой программист, не приследующий цель соответствия стандарту XHTML, может смело использовать фреймы, т.к. практически любой браузер их поддерживает.

Изначально каждый фрейм рассматривался как окно (все таки, фрейм, как и окно, является контейнером для документа), поэтому большинство свойств и методов, имеющихся у обекта window, присутствуют и у фрейма.



ЧЕГО ДЕЛАТЬ НЕЛЬЗЯ!!!
  • Получить доступ к свойствам документа из фреймов, доставленных с других серверов или домена. Политика безопастности не позволит данную операцию.
  • Изменить содержимое поля адреса. Т.к. URL страницы показывает страницу, в которой задан набор фреймов, а не текущую, многие пытаются вывести именно ее. Но эти попытки безуспешны smile
  • Сформировать запись в "Избранных", соотв. данной структуре фреймов!
    Хотя можно восстановить структуру фреймов, как это сделать будет описано чуть позже.
У фреймов своя специфическая иерархия, следующая картинка отоброзит, как происходит обращение фреймов друг к другу в HTML документе с двойной вложенностью фреймов.
(т.к. картинка нарисована мною "от руки", некоторые надписи могут быть непонятны, если что - обращайтесь, разъясню):

--Resize_Images_Alt_Text--

Обращаться к фрейму можно несколькими способами, вот самые распространненые:
Код

top.frames[i] // где 'i' - индекс фреймов, отсчет начинается с нуля (0), с верху вниз, как объявленно в HTML коде
top.frames["имя_фрейма"] // ...frame name="имя_фрейма" src=""...


Примеры:

Обращение к глобальной переменной myVar, объявленной в главном документе, выглядит так:
Код

parent.myVar
// или
top.myVar


Переход на опр. страницу:
Код

// канечно, можно сдлеать в HTML`е - <a href="" target="имя_фрейма">перейти</a>
// но мы сделаем умнее, с помощью JavaScript`а ;-)
parent.имя_фрейма.location.href = 'имя_страницы.html';


Еще очень полезной может оказаться следующая функция (она экономит время при смене дизайна)
Код

// для ее работы - нужно, чтобы необходим. ссылки имели аттрибут class="link"
function setTargets () {
 for (var i = 0; i < document.links.length; i++) {
   if (document.links.className == "link") {
      document.links.target = "имя_фрейма";
   }
 }
}


Сценарий во фрейме может прокрутить содержимое второго фрейма в начало страницы так:
Код

parent.frames["имя_второго_фрейма"].scrollTo(0,0);
// с там же успехом сценарий может обратиться к любой другой функции, описанной во втором фрейме


Сценарий может сделать ссылку на любой объект:
Код

// так, в обычном документе ссылку на input с id="qwe" вы бы сделали бы так:
// var elem = document.getElementById("qwe");
// Но если этот элемент лежит в соседнем фрейме, то нужно делать это так:
var elem = parent.frames["имя_соседнего_фрейма"].document.getElementById("qwe");

NB: нужно только не забыть сделать ссылку на документ после ссылки на нужный фрейм

Чтобы получить ссылку на документ фрейма есть 2 специальных свойства фреймов: contentDocument (W3C DOM) и contentWindow (IE DOM), и если нужна совместимость этих моделей, то можно написать простую функцию получения непосредственно документа:
Код

function getFrameDocument (fram) {
 var d = (fram.contentDocument) ? fram.contentDocument : ((fram.contentWindow) ? fram.contentWindow.document : null);
 return d;
}


Сценарий может динамически сгенерировать контекст фрейма:
Код

<HTML>
<head>
<script type="text/javascript">
<!--
function createFrame() {
   return "<html><body><h1>Это динамически-сгенерированный фрейм</h1></body></html>";
}
// -->
</script>
</head>
<frameset>
 <frame name="frame1" id="frame1" src="about:blank">
 <frame name="frame2" id="frame2" src="javascript:parent.createFrame()">
</frameset>
</HTML>


Ну и еще одна функция для любителей самообороны 8))
Код

// функция защиты от попадания данной страницы в набор фреймов
...
if (top != self) {
   top.location.href = location.href;
}
...


Это сообщение отредактировал(а) Aliance - 19.3.2005, 20:26
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 20.3.2005, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Вот полезный код, динамически изменяющий ширину навигационного фрейма: смотреть
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 26.8.2005, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Картинка

Присоединённый файл ( Кол-во скачиваний: 212 )
Присоединённый файл  frames.jpg 59,91 Kb
PM MAIL WWW ICQ Skype   Вверх
butionok
Дата 9.9.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2005

Репутация: нет
Всего: 3



Цитата(Aliance @ 19.3.2005, 19:41)
Сценарий может динамически сгенерировать контекст фрейма:
Код

<HTML>
<head>
<script type="text/javascript">
<!--
function createFrame() {
   return "<html><body><h1>Это динамически-сгенерированный фрейм</h1></body></html>";
}
// -->
</script>
</head>
<frameset>
 <frame name="frame1" id="frame1" src="about:blank">
 <frame name="frame2" id="frame2" src="javascript:parent.createFrame()">
</frameset>
</HTML>

Решил применить.... И оказалось, что нормально работает только в IE

NN и Firefox ругаются, но показывают

Error: uncaught exception: Permission denied to get property Window.createFrame

Opera ругается и не показывает smile

javascript:parent.createFrame()
Javascript URL thread: "javascript:parent.createFrame()"
Error:
name: ReferenceError
message: Security error: attempted to read protected variable

Может кто знает альтернативный метод динамического генерирования фреймов, который будет работать во всех броузерах?
--------------------
Ненавижу убогую Оперу.
PM MAIL ICQ   Вверх
Sardar
Дата 9.9.2005, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



У меня код в ИЕ(6.0 SP2) не заработал.
Цитата(butionok @ 9.9.2005, 18:21)
Может кто знает альтернативный метод динамического генерирования фреймов, который будет работать во всех броузерах?

Сними фрейм по ID, отдай этой функции:
Код
function getIframeDOMDocument(ifr) {
  return (ifr.contentDocument) ? ifr.contentDocument: ((ifr.contentWindow) ? ifr.contentWindow.document : ifr.document);
}

Получишь document, далее либо write, либо DOM'овскими методами.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 10.9.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Цитата(Sardar @ 10.9.2005, 00:58)
У меня код в ИЕ(6.0 SP2) не заработал.

У меня в том же все прекрасно работает smile Чудеса smile
PM MAIL WWW ICQ Skype   Вверх
Гость_12345
Дата 22.11.2005, 22:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проверил в 3 браузерах, Опера 7.54 наиболее кривая - никакими средствами не исполняет загрузку в фрейм, даже после создания:
Код
<html><head>
<script>function createFrame() {
    top.frame1.document.body.innerHTML='<h1>This is <b>3nd</b> dynamically generated frame</h1>';
    return "<html><body><h1>This is dynamically generated frame</h1></body></html>";
}setTimeout('top.createFrame()',1999);</script>
</head>
<frameset cols="50%,50%"  onL oad=top.createFrame()>
 <frame name="frame1" id="frame11" src="javascript:'<body on Load=top.createFrame()>12345</body>'">
 <frame name="frame2" id="frame21" src="javascript:Math.sin(56789)">
</frameset>
</HTML>
, что странно. Работает лишь на статическом контенте, когда пишешь строку сразу после двоеточия. Однако, встроенная функция работает (sin).
FF 1.06 имеет баг с нечувствительностью фрейма к onLoad при рефреше (см. убранные варианты onLoad).
IE6 SP2 работает при всех вариантах.
  Вверх
Гость_12345
Дата 22.11.2005, 22:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помню, в древности от такой загрузки пришлось отказаться из-за крупных проблем с NN4 и 3 и грузить из отдельных страниц.
  Вверх
Elfet
Дата 10.2.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Глюк! smile Никак понять не могу! smile Ошибка:Объект не поддерживает это свойство или метод
Код

<a href='javascript:parent.frames["bar"].addid(" :мел: ");'>


Это сообщение отредактировал(а) Elfet - 10.2.2006, 21:21


--------------------
PM MAIL WWW Skype   Вверх
Aliance
Дата 11.2.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



А структуру фреймов и код фрейма bar ты нам не хочешь показать?
PM MAIL WWW ICQ Skype   Вверх
Greendrake
Дата 27.3.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: нет
Всего: 6



Цитата(Sardar @ 9.9.2005, 23:58)
Сними фрейм по ID, отдай этой функции:
Код
function getIframeDOMDocument(ifr) {
  return (ifr.contentDocument) ? ifr.contentDocument: ((ifr.contentWindow) ? ifr.contentWindow.document : ifr.document);
}

Код

var ifr = document.createElement('IFRAME');
document.body.appendChild(ifr);
alert(getIframeDOMDocument(ifr));


В опере 8.5 пишет null. Как с этим бороться?
PM MAIL   Вверх
Yuriy_G
Дата 31.12.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 31.12.2006

Репутация: нет
Всего: нет



Подскажите как необходимо прописать скрипт, чтоб новое окно открывалось, а потом через определенное время исчезало (закрывалось).
Напишите, пожалуйста, пример такого скрипта.
Спасибо.
PM MAIL   Вверх
AKS
Дата 1.1.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: нет
Всего: 52



Yuriy_G, вот здесь есть "пример такого скрипта", который Вам нужен.

PM MAIL   Вверх
suzuka
Дата 7.2.2007, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.2.2007

Репутация: нет
Всего: нет



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script>
function setcolor() {

    var r = Math.floor((Math.random() * 256)).toString(16);
    var g = Math.floor((Math.random() * 256)).toString(16);
    var b = Math.floor((Math.random() * 256)).toString(16);
    var colorString = "#" + r + g + b;

    document.write("<body bgcolor='" + colorString + "'></body>");
    document.close();

     setTimeout('setcolor(' + name + ')', 1000);
}
</script>
</head>
<frameset rows="100%" cols="100%"
  onload="for(var i = 0; i < 9; i++) setcolor(frames[i]);">
<frame name="f1">
<body>



</body>
</html>


Окно в общем то меняет цвет, работает как и положено. Но смущает один момент, просто показывает ошибку при открытие страницы. Пишет, что ошибка в строке 1. И как это понимать? Подскажите пожалуйста, в чем тут проблема.
PM MAIL   Вверх
lonli
Дата 2.4.2007, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 31.3.2007
Где: Москва

Репутация: нет
Всего: нет



suzaka, если честно, я не понимаю как оно по твоему должно работать
Код

setTimeout('setcolor('+name+')',1000);
...
setcolor(frames[i]);


1. Ты пытыешся вызвать ф-цию setcolor() с непредусмотренным аргументом
это похоже прокатывает, в др. языках такое и компилироваться бы не стало.
2. Ошибка возикает по моему (проверять конкретно не стал) при попытке использовать name - 
неинициированную переменную.
3. При чём тут фреймы? 
Возможно ты хочешь чтобы цвет менялся во фреймах?
  а) у тебя 1 фрейм.
  б) для этого попробуй воспользоваться with.
4. document.close() - для чего?
по моему после этого document.write("..."); работать не должно.

Я по JS не специалист, сам недавно начал. Если что извеняйте.

PM MAIL ICQ   Вверх
manipul
  Дата 17.7.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.7.2007
Где: #Internet@

Репутация: нет
Всего: нет



Please, help me!
I cann't create modal window in Firefox. This is me code:
Код

<a href="myPage.htm" target="name" onclick="modalWin(); return false;">click here</a> 
...
function modalWin() {
    if (showModalDialog) {
        var w = showModalDialog("myPage.htm","name","resizable:yes;help:no;edge:sunken;dialogWidth:255px;dialogHeight:250px");
    } else {
        window.open('myPage.htm','name','height=255,width=250,modal=yes');
    }
}

This is code work in IE! 
PM MAIL   Вверх
diAngel
  Дата 2.8.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.5.2007
Где: Москва

Репутация: нет
Всего: нет



привет,а как написать код для такого окошка: на html страничке имеется много фото, нажимаешь на 1 фотку она увеличеваеться в новом окошке--пользователь  посмотрел и закрыл  smile  пожалуйста помогите с этим кодом..оч надо 
PM MAIL ICQ   Вверх
cruelangel
Дата 12.9.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: нет
Всего: 8



PM MAIL   Вверх
bork
Дата 4.1.2008, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 4.1.2008

Репутация: нет
Всего: нет



Помогите со скриптом. Есть пример, несколько ссылок, открывающие новые окна. При нажатии на ссылку открывается окно, при нажатии на другую, открывается новое окно, при этом предудущее окно минимизируется (сварачивается) как это и должно быть. 
Как сделать чтобы минимизированное окно автоматически закрывалось?  Вариант с проверкой, типа if (!newwindow.closed сложноват, так как у меня в конкретном примере много ссылок.  Если есть предложения пишите, я думаю многие скажут спасибо, тема интересная.
Код

<html><head>
<script type="text/javascript" language="JavaScript">
<!--
function winop1()
{
windop_1 = window.open("http://www.rambler.ru","mywin","height=1000,width=2000,left=0,top=200");
}
function winop2()
{
windop_2 = window.open("http://mail.ru","mywin_2","height=1000,width=2000,left=0,top=200");
}
function winop3()
{
windop_3 = window.open("http://yandex.ru","mywin_3","height=1000,width=2000,left=0,top=200");
}
-->
</script>
</head>
<a href="javascript: winop1();">Link 1</a>
<a href="javascript: winop2();">Link 2</a>
<a href="javascript: winop3();">Link 3</a>
</center></body></html>

 smile 
PM MAIL   Вверх
InfMag
Дата 29.1.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Код

Wnd = window.open("page.html", "presentation", "toolbar=no,status=no,resizable=no,innderWidth=800px,innerHeight=600px");

Вот создаю окошко со входом на страничку, тут все популярно описывается как это сделать, а как создать окошко и с со страницы которая его создала забить в него контент нежели чем ссылаться на страницу? Я помню так делал, но не помню как.
PM   Вверх
bars80080
Дата 29.1.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

Wnd.document.write('content');

но это от лукавого
PM MAIL WWW   Вверх
Reasonsoul
Дата 2.9.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.8.2009

Репутация: нет
Всего: нет



Вот у меня тоже проблема с фреймами. Блуждание по страницам моего сайта организовано с помощью iфреймов (на главной два шт. + календарь архив). При выборе в календаре даты с новостью, в крайнем левом фрейме открывается анонс этой новости, заголовок которой является ссылкой на полный текс выбранной новости, так вот, проблема в том, что когда я нажимаю на заголовок анонса новости, страница с полным вариантом должна открываться в центральном фрейме, Но!!! почемуто, она открывается в новом окне!!!? При всем этом такой глюк происходит только с ИЕ (в опере и firefox все открывается там где надо) - какие причины могут быть этой ошибки в ИЕ? Подскажите пожалуйста.. (если нужна ссылка на сайт, для наглядности - в личном сообщении...).
Я использую в ссылке заголовка
Код

<a href="newind_1.html" target="menu" title=""><B><I>Новый метод создания 3D наноформ.</i></b></a>

PM MAIL   Вверх
priam220
Дата 24.9.2010, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: нет
Всего: 8



как прочитать то что написано в статус баре? Есть window.status, но это для того, что бы туда что то занести. А прочитать как?
PM MAIL   Вверх
bars80080
Дата 24.9.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

var t = window.status; alert(t);

PM MAIL WWW   Вверх
priam220
Дата 25.9.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: нет
Всего: 8



да я пробывал, не получается:
javascript:{var t = window.status; alert(t);}
в файрфоксе и IE7 не работает. Вываливается пустой алерт... Что не так?
PM MAIL   Вверх
bars80080
Дата 25.9.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(priam220 @  25.9.2010,  12:29 Найти цитируемый пост)
javascript:{var t = window.status; alert(t);}

а вы уверены, что такая конструкция точно сработает? javascript: {} ?

в ФФ, кстати, оно и не должно работать, ибо нечего соваться в служебные данные
PM MAIL WWW   Вверх
priam220
Дата 26.9.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: нет
Всего: 8



Не вижу причин для неуверенности. Тот же алерт выскакивет. В Опере, к примеру, работает данный скрипт полностью... Может в ИЕ и ФФ действительно намутили с безопасностью, только с каких это пор статус стал содержать служебные данные? Да и установление пропертоса  на запись в файрфоксе ситуацию не изменило.
PM MAIL   Вверх
bars80080
Дата 26.9.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(priam220 @  26.9.2010,  14:34 Найти цитируемый пост)
только с каких это пор статус стал содержать служебные данные?

с тех самых пор, когда придумали статус. это чисто служебная функция. и пользователей очень раздражает, если там показывается не обычная информация, вроде "готово", "поиск", адрес ссылки, а что-то отличное
PM MAIL WWW   Вверх
priam220
Дата 26.9.2010, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: нет
Всего: 8



Ну пусть так... А почему не читает то? В опере работает, в ФФ и ИЕ нет.
PM MAIL   Вверх
JAYBE
  Дата 5.10.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.3.2008

Репутация: нет
Всего: 0



Если есть iframe сурс которого содержит страницу с того же домена, что и родительский, то как получить доступ к DOM-элементам внутри этого же iframe?
Как реализовать, чтобы документ, который загружается в iframe, автоматически уменьшался в размере под размер iframe?

Это сообщение отредактировал(а) JAYBE - 5.10.2011, 16:53
PM   Вверх
Serious2008
Дата 18.7.2012, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Здравствуйте. Подскажите пожалуйста. Вариант авторесайза iFrame, если нет возможности изменять тот источник с которого берём информацию. + кросбарузерность.
PM MAIL   Вверх
Aliance
Дата 19.7.2012, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Цитата(Serious2008 @  18.7.2012,  18:41 Найти цитируемый пост)
Здравствуйте. Подскажите пожалуйста. Вариант авторесайза iFrame, если нет возможности изменять тот источник с которого берём информацию. + кросбарузерность. 

http://dklab.ru/chicken/nablas/58.html
PM MAIL WWW ICQ Skype   Вверх
Serious2008
Дата 19.7.2012, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Aliance
вот какая проблема. Была у меня сказана, нет возможности изменять источник
PM MAIL   Вверх
Aliance
Дата 19.7.2012, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



При внимательном изучении статьи и всех ее ссылок, в итоге вы зашли бы сюда:
http://softwareas.com/cross-domain-communi...on-with-iframes
PM MAIL WWW ICQ Skype   Вверх
alexFast777
Дата 19.4.2015, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.9.2014

Репутация: нет
Всего: нет



На этом сайте есть немного информации по фреймам.
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.