Я пишу GreaseMonkey script, где я повторяюсь через кучу элементов. Для каждого элемента мне нужен идентификатор строки, который я могу использовать для ссылки на этот элемент позже. Сам элемент не имеет атрибута id
, и я не могу изменить исходный документ, чтобы дать ему один (хотя я могу внести изменения DOM в свой script). Я не могу сохранить ссылки в моем script, потому что, когда они мне понадобятся, сам GreaseMonkey script выйдет за рамки. Есть ли способ получить "внутренний" идентификатор, который использует браузер, например? Решение только для Firefox прекрасно; кросс-браузерное решение, которое может быть применено в других сценариях, было бы удивительным.
Edit:
-
Если GreaseMonkey script выходит за пределы области действия, как вы ссылаетесь на элементы позже? Они GreaseMonkey script добавляют события к объектам DOM. Я не могу хранить ссылки в массиве или какой-либо другой подобный механизм, потому что когда событие срабатывает, массив исчезнет, потому что GreaseMonkey script выйдет за рамки. Таким образом, событие должно каким-то образом узнать о ссылке на элемент, которую имел script, когда событие было присоединено. И элемент, о котором идет речь, не тот, к которому он прикреплен.
-
Не можете ли вы просто использовать настраиваемое свойство для элемента? Да, но проблема в поиске. Мне пришлось бы прибегать к повторению всех элементов, которые ищут тот, у которого это настраиваемое свойство установлено на желаемый идентификатор. Это будет работать, конечно, но в больших документах это может занять много времени. Я ищу что-то, где браузер может выполнять работу поиска.
-
Подождите, можете ли вы или не можете изменить документ? Я не могу изменить исходный документ, но я могу внести изменения DOM в script. Я уточню в вопросе.
-
Можете ли вы не использовать закрытие? Затворы оказались полезными, хотя первоначально я думал, что они не будут. См. Мой более поздний пост.
Звучит как ответ на вопрос: "Есть ли какой-то внутренний идентификатор браузера, который я мог бы использовать?" "Нет".