Ссылаясь на элементы HTML в Javascript просто по их идентификатору - PullRequest
1 голос
/ 24 августа 2011

Очевидно, идентификаторы для элементов HTML загружаются в глобальное пространство имен для Javascript на странице HTML.Таким образом, если у меня есть HTML, такой как:

<p id="mypara">Hello</p>

, я могу запустить Javascript как:

mypara.innerText += " world";

, что приводит к тому, что абзац имеет текст Hello World в качестве текста в IE9 и Chromeна винде.Это кажется более удобным способом обращения к элементам HTML, чем к стандартному

document.getElementById("mypara").innerText += " world";

. Насколько я могу судить, недостатки заключаются в том, что нельзя давать идентификаторы элементов HTML, которые являются ключевыми словами Javascript (не так уж плохо) и ваше глобальное пространство имен более загрязнено.

Есть ли другие проблемы с этим подходом?Есть ли документация, которая точно описывает, когда / как заполнение глобального пространства имен выполняется браузерами?Есть ли причуды или подводные камни?Кто-нибудь проверял совместимость браузера?

Ответы [ 2 ]

1 голос
/ 24 августа 2011

В раннем IE появилась практика создания идентификаторов элементов и имен глобальных ссылок на элементы. Он никогда не был стандартизирован и считался очень плохой идеей.

Другие браузеры предоставляли различные уровни поддержки для обеспечения совместимости с сайтами, написанными для IE, но в целом поддержка была минимальной (даже скрытой в некоторой степени), чтобы препятствовать ее использованию. Некоторые браузеры поддерживают его только в режиме причуд или с определенными DOCTYPE.

Это все еще считается очень плохой идеей, не используйте ее. Используйте соответствующие методы DOM, не полагайтесь на такие особенности браузера.

0 голосов
/ 24 августа 2011

Я бы беспокоился о скрипте, работающем в старых браузерах. Например, эта скрипка не работает в Firefox 3.

http://jsfiddle.net/rrSwW/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...