Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > полезное |
Автор: Rtm 9.2.2006, 09:36 | ||||||||
Закрывает текущее окно без запросов
обращается к тегу "<TD>" с ндексом [8]
или допустим в таблице в <TR> обратиться к <TD>
//где th объект на котором проиошло событие т.е.
|
Автор: kira 9.2.2006, 11:12 | ||||
в firefox не работает |
Автор: Rtm 9.2.2006, 12:18 |
потомучто в лисе Jscript а не JavaScript |
Автор: Zeroglif 9.2.2006, 12:49 |
Переименуйте тему в "Вредное для начинающих... или как ньюбы прикалываются!" :-) |
Автор: Aliance 9.2.2006, 14:56 |
![]() document.all устарело давно. Все, что тут написано (либо скопировано с древнего источника) не актуально в настоящий момент. |
Автор: Rtm 9.2.2006, 15:29 |
а что актуально? поделись, что ли... |
Автор: sergejzr 9.2.2006, 15:46 |
Это нигде не будет работать просто так. Автор не упомянул, что закрывать скриптом можно только окошки, скриптом же и открытые. Rtm, зачем было создавать эту тему? Смысл? Тем более с дезинформирующей информацией. Во первых, это в ИЕ JScript, а в лисе как раз яваскрипт, во вторых это для поставленной задачи в принципе одно и тоже. Уже давно существуют стандарты, по которым код пишется браузеронезависимо. Например document.getElementById(id) будет работать везде, так же как и document.getElementsByName(name) Это стандарт и это следует использовать на будущее совет: Не надо публиковать утверждения, не разобравшись в материи хотя бы на половину. |
Автор: Rtm 9.2.2006, 16:34 | ||||
с этим не согласен:
в IE работает
ok сори ![]() впредь буду осмотрительнее всем спасибо |
Автор: 12345c 9.2.2006, 17:08 | ||||
window.opener='o'... в IE и Опере (7.54) работает. Довольно интересный баг (не что иное как) браузеров). Получается, они решают о предупреждении только по отсутствию свойства opener. Второй пример тоже интересен как показ различий в интерпретациях браузеров. Берём пример:
Но, мы хорошо знаем, что у tr нет свойства all. Почему же пример работает? В FF all поддерживается примерно с 1.05. Запускаем там - и видим, естественно, ошибку. tr.all не существует. В ie/opera подозреваем неладное и пишем такой пример для разбора:
Итого, примеры совсем не для начинающих, а, скорее, как пара задач для обучающихся (почему это работает здесь, а не работает там), которые уже поняли суть объектной модели документа и смогли бы разобраться в тонкостях интерпретации кодов. |
Автор: 12345c 9.2.2006, 17:53 |
Так с этим багом можно открывать вредный i-фрейм, который закроет рабочее окно с историей ссылок и набранным кодом, с накопленными аяксовыми данными, в самый неподходящий момент. Хорошо, что хоть есть противоядие - onBeforeUnload, надо будет иметь в виду. Хотя и его можно переопределить из фрейма. И с чужого сайта может не сработать (проверьте, если не трудно - top.opener=1;top.close() из фрейма с чужого сайта). |
Автор: Zeroglif 9.2.2006, 23:08 | ||||||
Ньюб почитает про "обучение" и поведётся... в обратную сторону, а ему надо стараться писать в русле времени и его будущих требований. Приведённые примеры не открывают никаких америк касательно возможности работать с коллекцией all внутри конкретного элемента, http://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/scripting_elements_collections.asp. Учить же народ дотрагиваться до нужного элемента через object.all - это, мягко говоря, вряд ли полезно, при острой необходимости (подддержка старых IE, какая-нибудь особенная группировка элементов и проч.) он придёт к этому сам и будет с грустью и тоской разбирать квирки остальных браузеров, кас. all. Ссылку на opener мы, как известно, можем прописать руками, соответственно формула:
или:
браузером воспринимается как текущее окно есть дочернее окно, можно его закрыть... |
Автор: Alx 20.2.2006, 19:22 | ||
с чужого сайта никакие скрипты не будут работать в твоем окне ![]() потом, что вы приципились к присвоениею "o" window.opener`у? люди ж так и будут писать ![]() доастаточно просто объявить его, и присвоить true или 1, так просто логичнее. ;) дуамю, что в ближайших версиях браузеров это будет устранено, просто потому что это лаг разработчиков, а не специальная функция. надеюсь, что они придумают что-нибудь взамен ![]() |