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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> полезное, для начинающих 
:(
    Опции темы
Rtm
Дата 9.2.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Закрывает текущее окно без запросов
Код

 window.opener="o";
 window.close();


обращается к тегу "<TD>" с ндексом [8]
Код

document.all.tags('td')[8].innerHTML


или допустим в таблице в <TR> обратиться к <TD>
Код

th.all.tags('td')[i].innerHTML

//где th объект на котором проиошло событие
т.е.
Код

....ondblclick='FunctionName(this)'...

function FunctionName(th){
th.all.tags('тэг')[номер].что_нужно (style/innerHTML и т.д. и т.п.)
}






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


Новичок



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

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



Цитата(Rtm @ 9.2.2006, 09:36)
Закрывает текущее окно без запросов
Код

 window.opener="o";
 window.close();


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


Новичок



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

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



Цитата(kira @ 9.2.2006, 11:12 Найти цитируемый пост)

в firefox не работает


потомучто в лисе Jscript а не JavaScript
PM MAIL   Вверх
Zeroglif
Дата 9.2.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Rtm @ 9.2.2006, 12:18 Найти цитируемый пост)
потомучто в лисе Jscript а не JavaScript


Переименуйте тему в "Вредное для начинающих... или как ньюбы прикалываются!" :-)

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


I ♥ <script>
****


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

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



Цитата(Rtm @ 9.2.2006, 13:18 Найти цитируемый пост)

потомучто в лисе Jscript а не JavaScript

smile

document.all устарело давно.

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


Новичок



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

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



а что актуально?
поделись, что ли...
PM MAIL   Вверх
sergejzr
Дата 9.2.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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





Цитата(kira @ 9.2.2006, 09:12 Найти цитируемый пост)

в firefox не работает

Это нигде не будет работать просто так. Автор не упомянул, что закрывать скриптом можно только окошки, скриптом же и открытые.
Rtm, зачем было создавать эту тему? Смысл? Тем более с дезинформирующей информацией.
Цитата(Rtm @ 9.2.2006, 10:18 Найти цитируемый пост)

потомучто в лисе Jscript а не JavaScript

Во первых, это в ИЕ JScript, а в лисе как раз яваскрипт, во вторых это для поставленной задачи в принципе одно и тоже.
Уже давно существуют стандарты, по которым код пишется браузеронезависимо. Например
document.getElementById(id) будет работать везде, так же как и document.getElementsByName(name)
Это стандарт и это следует
использовать

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

Это сообщение отредактировал(а) 12345c - 9.2.2006, 17:01


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Rtm
Дата 9.2.2006, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



с этим не согласен:
Цитата

Это нигде не будет работать просто так. Автор не упомянул, что закрывать скриптом можно только окошки, скриптом же и открытые.

в IE работает
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title></title>
</head>
<body onload="javascript:window.opener='o';window.close()">
</body>
</html>


ok
сори smile
впредь буду осмотрительнее
всем спасибо

PM MAIL   Вверх
12345c
Дата 9.2.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

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



window.opener='o'... в IE и Опере (7.54) работает. Довольно интересный баг (не что иное как) браузеров). Получается, они решают о предупреждении только по отсутствию свойства opener.


Второй пример тоже интересен как показ различий в интерпретациях браузеров. Берём пример:
Код
<table border=1><tr onclick='FunctionName(this)'><td>1111111</td><td>2222222</td></tr></table>
<script>
function FunctionName(th){
th.all.tags('TD')[1].style.color='red';
}</SCRIPT>
По клику на строке высвечивается вторая ячейка.
Но, мы хорошо знаем, что у tr нет свойства all. Почему же пример работает? В FF all поддерживается примерно с 1.05. Запускаем там - и видим, естественно, ошибку. tr.all не существует. В ie/opera подозреваем неладное и пишем такой пример для разбора:
Код
<table border=1><tr><td>0000000</td><td>3333333</td></tr></table>
<table border=1><tr id=tr1 onclick='FunctionName(this)'><td>1111111</td><td>2222222</td></tr></table>
<script>
function FunctionName(t){
    alert(t.id)
t.all.tags('TD')[1].style.color='red';
}
</SCRIPT>
По-прежнему, высветились 22222, но почему? Меняем t.tr1.all.tags('TD')[1] на document.all.tr1.all.tags('TD')[1] и видим, что у тегов, оказывается, есть свои подколлекции! Ура, новое знание об объектной модели ie.

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

Это сообщение отредактировал(а) 12345c - 9.2.2006, 17:58


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Rtm
Дата 9.2.2006, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(12345c @ 9.2.2006, 17:08 Найти цитируемый пост)

Довольно интересный баг (не что иное как) браузеров). Получается, они решают о предупреждении только по отсутствию свойства opener.


не думаю что это баг
браузер решает, что это окно открыли из другого окна и для него родитель 'o'
следовательно наше окно считается дочерние
а дочерние окно закрывается без предупреждения


PM MAIL   Вверх
12345c
Дата 9.2.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

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



Так с этим багом можно открывать вредный i-фрейм, который закроет рабочее окно с историей ссылок и набранным кодом, с накопленными аяксовыми данными, в самый неподходящий момент. Хорошо, что хоть есть противоядие - onBeforeUnload, надо будет иметь в виду. Хотя и его можно переопределить из фрейма. И с чужого сайта может не сработать (проверьте, если не трудно - top.opener=1;top.close() из фрейма с чужого сайта).


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Zeroglif
Дата 9.2.2006, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(12345c @ 9.2.2006, 17:08 Найти цитируемый пост)
Итого, примеры совсем не для начинающих, а, скорее, как пара задач для обучающихся (почему это работает здесь, а не работает там), которые уже поняли суть объектной модели документа и смогли бы разобраться в тонкостях интерпретации кодов.


Ньюб почитает про "обучение" и поведётся... в обратную сторону, а ему надо стараться писать в русле времени и его будущих требований. Приведённые примеры не открывают никаких америк касательно возможности работать с коллекцией all внутри конкретного элемента, всё это давно известно и живёт (скорей бы умерло) без особых тонкостей и премудростей в DHTML Object Model. Учить же народ дотрагиваться до нужного элемента через object.all - это, мягко говоря, вряд ли полезно, при острой необходимости (подддержка старых IE, какая-нибудь особенная группировка элементов и проч.) он придёт к этому сам и будет с грустью и тоской разбирать квирки остальных браузеров, кас. all.

Ссылку на opener мы, как известно, можем прописать руками, соответственно формула:
Код

window.opener = self;
window.close();


или:
Код

window.opener = "пишучтохочу";
window.close();

браузером воспринимается как текущее окно есть дочернее окно, можно его закрыть...

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


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



Цитата(12345c @ 9.2.2006, 17:53 Найти цитируемый пост)
(проверьте, если не трудно - top.opener=1;top.close() из фрейма с чужого сайта).

с чужого сайта никакие скрипты не будут работать в твоем окне smile

потом, что вы приципились к присвоениею "o" window.opener`у?
люди ж так и будут писать smile)
доастаточно просто объявить его, и присвоить true или 1, так просто логичнее. ;)

дуамю, что в ближайших версиях браузеров это будет устранено, просто потому что это лаг разработчиков, а не специальная функция.
надеюсь, что они придумают что-нибудь взамен smile


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


 




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


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

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