![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 1 Всего: 66 |
Нет. Не все srcElement или target линков (с виду) имеют href
ваш код не заработает. Неприятная разметка, конечно, но жизненная... |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Вош - это какой? Их тут 2 - мой вариант и еще один, уже не мой. Оба варианта игнорируют ссылки без атрибута confirm. -------------------- ![]() ![]() |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
Если что (т.е. если это может быть интересным), то я хоть и представлял свой вариант как "не совсем серьезный", но все же внес две маленьких поправки в полном соответствии с замечаниями SelenIT и Zeroglif.
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 1 Всего: 401 |
Zeroglif, я дико виноват, иду мылить веревку и посыпать голову пеплом...
GZep, простите меня, пожалуйста, за то, что сбил с истинного пути... Всем, в первую очередь модераторам: прошу лишить меня всей репы в разделе javascript - за такие ошибки, как совершенная мной, прощать нельзя, по-хорошему за такое ламерство надо расстреливать... Это сообщение отредактировал(а) SelenIT - 7.11.2006, 01:36 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
SelenIT,
Эй-эй, Вы что? Уж если дело дойдет до "веревки", то ее нужно перенаправить на Xpoint - в соответствии с принципом "всплывания" событий. ;) Ведь как там у них, что-то типа - авторитетно звучащий ответ хуже чего-то там, так ведь? А именно "авторитетно звучащим ответом" Вас самого там сбили с толку... Если серьезно - а может быть какое-нибудь там условие добавить? |
|||
|
||||
| GZep |
|
||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Вешаться - уже не модно. На данный момент самое "ано" - это смерть от передазировки "сами знаете чего".
Вашей вины тут не вижу...Вы мне уже не раз помогали и давали ценные советы... Так что? Какой-то вариант не рабочий? Либо из-за того, что сейчас утро я ничего не понимаю, либо я просто запутался... -------------------- ![]() ![]() |
||||
|
|||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Я так понял, что окончательный вариант - это вариант, который предложил всеми уважаемый SelenIT. Вот этот вариант, но только чуть-чуть переделанный мной, для повышения читабельности у "новичков" в javascript:
Вот и все! -------------------- ![]() ![]() |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 1 Всего: 401 |
GZep, мой вариант в этом виде нерабочий, к сожалению (в частности, на примере Zeroglifа). Так что, даже идя по этому пути, совсем без циклов, похоже, не обойтись. Вот так, кажется, работает:
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
SelenIT,
я решил (уже "по обычаю" ;) ) сделать тест. Долго не думая, взял свой "несерьезный" скрипт с предыдущей страницы, "нарисовал" на страничке 2340 ссылок, ну и запустил скрипт. Причем скрипт, проверяя каждую ссылку на наличие аттрибута title (был "по умолчанию" у ссылок - изобретать confirm не стал), для каждой (!) устанавливал обработчик события "click". В результате IE (рекордсмен) цикл в функции инициализации "пробегает" менее чем за 100mc, Opera ~ 150mc, а вот FF - от 800 до 1000mc. Т.е. "побочный" вывод - какие-либо операции в цикле у FF занимают на-а-амного больше времени. Ну а главный вывод - все-же можно использовать цикл для того, чтобы "пройтись" по коллекции document.links и назначить обработчики там, где нужно (как Вы и предлагали в аналогичной теме на Xpoint). Главное - поймите меня правильно. Тест - это не "камень" в ваш огород! Это просто тест, на основании которого можно (может быть каждому по-своему) делать какие-то выводы. |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 2 Всего: 101 |
Чтобы обойтись без циклов - отлавливайте все клики на документе. Затем проход от srcElement вверх по parentNode с поиском тегов <a>. Затем проверка на наличие подтверждения. Если всё есть, выводится.
Условно:
-------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 1 Всего: 401 |
AKS, спасибо, интересные результаты. Правда, 8-10% "лисоводов" (включая меня) имхо все же заслуживают, чтобы с ними немного считались
И все же интересно узнать Ваше мнение по моему последнему варианту глобального перехвата. Какие еще подводные камни на ровном месте я пропустил, и можно ли то же самое сделать проще/по-человечески? -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
SelenIT, вообще мнение мое такое - лучше сделать так:
Ну а если уж взялись "изобретать" - тут уж, как говорится, кто на что горазд. Если серьезно, то считается (не я так считаю, я об этом только читаю), что в программировании всегда есть несколько способов решения одной и той же задачи. У каждого решения найдутся свои недостатки.
У меня у самого вопросов больше, чем ответов ;) ... |
||||
|
|||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
SelenIT, вот еще "попытал" браузеры насчет:
оставил такое условие в цикле (из своего скрипта):
IE - 31ms, FF - 797ms. Да уж, "лисоводам" радоваться нечему ;) |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 1 Всего: 401 |
AKS, насчет "лучше, как проще" - согласен полностью. Но иногда такую вещь нужно добавить динамически - например, напомнить юзеру, что он ввел что-то в форму, если он об этом забыл и вздумал уйти со страницы.
Насчет срабатывания глобального перехвата до полной загрузки - сейчас проверил, сделал длинную страницу разных ссылок (в т.ч. со внутренней разметкой и map-ов) и прогнал из-под IE через WebSpeedSimulator - работает, зараза (если, конечно, моим глазам еще можно верить)... но нутром чую, что я пропустил еще что-то архиважное, жду следующего отрезвляющего ушата холодной воды от глубокоуважаемого Zeroglifа... Насчет скорости, сейчас проверил attributes['title'] вместо getAttribute('title') (думал, может вызов метода тормозит) - нет, обращение к коллекции еще медленнее Это сообщение отредактировал(а) SelenIT - 7.11.2006, 18:32 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
12345c, предложил, по-моему, "очень даже ничего вариант"...Немог бы кто-нибудь сравнить его с финальным вариантом. Какой быстрее? Кто какой способ использует? Ну, и Ваше мнение...Очень интересно будет услышать...
-------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |