После очередного выбора автором в качестве решения примитивного ответа из других, более верных, я перешёл на тёмную вашу сторону. Ощущение, что ты потратил время впустую на свой ответ.
Структуру и состояние документа при прочих равных лучше получать от сервера.
Состояние элемента может определяться не только формальными, но и логическими признаками.
Иван Антонов: Можно. Опять же — это просто объект. и можно добавлять что угодно.
У меня выработалась привычка хранить сторонние данные в dataset. Не возникает проблем с возможным пересечением имён. По факту dataset — аналог словаря. К тому же, в ходе тестирования можно всегда запросить и посмотреть его ключи. Иначе пришлось бы помнить все имена или смотреть все ключи объекта.
Приношу извинения, что стал писать в ответе, который написал Константин Китманов, просто увидел слово «словарь»:)
Иван Антонов: Если критерием является состояние объекта (значение его атрибутов, положения etc.), то возможным вариантом было бы сохранение ссылки на отложенный вызов в dataset самого элемента, а то и просто свойства (это же — просто host-объект).
Если критерием является совокупность внешних факторов, независящих от элемента, то я, как вы и сделали, выбрал бы хранение в абстрактном объекте — словаре. Что использовать в качестве ключа — id или самостоятельно добавленное новое значение dataset — ваш выбор.
Наверное стоило мне сказать, что без HTML работа JS в Web принципиально невозможна. В принципе. Абсолютно разные языки с абсолютно разными целями. Но лучше я побуду клоуном:)
FanatPHP: Мне кажется, есть 2 проблемы — обилие мусорных тем и интересной аудитории. Наверняка, они связаны, но, опять же, мне кажется, что связь эта не 100-процентная. Я вижу проблему в эволюции новичков.
veitmen: Объект document для каждого окна (читай iframe) свой. Для каждого встроенного окна нужно внедрять описанный алгоритм.
Если документ, загружаемый в добавленный iframe, соответствует политике происхождения, это можно сделать. Если нет — никак.
FanatPHP: Почитал ваши ответы. Вы удивитесь, но потраченные вами нервы и откровенный тон — один из лучших вариантов реакции на тупые вопросы:) Занимайся я этой темой и, натолкнувшись на ваш ответ, задумался бы — всё ли я делаю правильно.
Невозможно избавиться от тупых вопросов. Я же предлагаю экономию нервов для остальных участников, которые не потратят время и силы на подобную чушь. А кто-то потратит, и многие новички поймут, что так делать не нужно, или нужно, но не так.
Вот что сделать с автором такого вопроса? Забанить? Выкинуть? Ну найдёт он говнофорум и будет говнокодить дальше.
Валентин: Труднореализуемая задача. Человек может не помнить, долгое время отсутствовать, никогда не читать подобных вопросов. Кроме того, названия вопросов далеко не всегда соответствуют содержанию.
Добавьте сюда трудность составления списка аналогичных вопросов по слабо формализуемым параметрам и получите функционал, который вроде и есть, но толку от него мало.
Я такой древний, что помню xpont.ru. Где также альтруизм экспертов таял, как утренний пук. И потихоньку весьма популярный в своё время и полезный ресурс превратился в склад давно написанных ответов и интересных, но часто уже неактуальных дискуссий.
И когда стало происходить затухание, все начали задаваться вопросами — почему приток пользователей стал отрицательным, почему большинство пришедших крайне слабо эволюционирует, как заставить новичков читать эти грёбаные мануалы или, хотя бы, искать в гугле ответы самому. Даже была инструкция, как составлять минимально проблемный код.
Тем не менее, ресурс почти умер, хотя я уже про это сказал. Это к тому, что попытка добавить негатив в виде системы минусования точно не есть решение. Нужно решать 3 основных вопроса:
— Привлекать новичков
— Культивировать в них умение искать ответы и грамотно формулировать вопросы
— Удерживать продвинутых пользователей.
Обратная связь с Хабром? Ссылки на наиболее интересные темы в Хабре? Бонусы для экспертов? Бонусы для новичков за эволюцию? Что ещё интересного, кроме вопросов и ответов на Тостере? И так далее.
Пы.Сы. Кнопка «Пригласить эксперта» иногда работает — молодцы.