JavaScript и' <> … </>' теги

Таким образом, я недавно обнаружил, что мог использовать <>... теги в JavaScript в Firefox, который удобен при определении блоков HTML или CSS.

GM_addStyle(<>);
//...
div.innerHTML = <>
    
  
]]>;

Но я не абсолютно уверен, что продолжается, и мне нравится понимать синтаксис, который я использую. Что точно делает <>... вернуть? Я заметил, что выход работает лучше, когда я включаю содержание в , таким образом, что происходит там? Этот Firefox только, или перекрестный браузер?

Я попытался искать это онлайн, но столкнулся с нормальной проблемой Google/символа. Плюс, большинство результатов для google CDATA JavaScript не казался релевантным.

9
задан rampion 22 February 2010 в 19:53
поделиться

3 ответа

Я считаю, что пустые теги - это просто способ написать корневой элемент, чтобы было во что завернуть сгусток XML. Он говорит: "Интерпретируйте дочерние элементы этого корневого элемента как XML", а единственный дочерний элемент в вашем случае говорит: "Интерпретируйте этот дочерний элемент как блок CDATA."

.
4
ответ дан 4 December 2019 в 23:39
поделиться

Нет причин использовать литерал XMLList ( <> ... ) только с одним дочерним элементом, поскольку он обрабатывается в любом случае как единый элемент XML. Почему бы не использовать просто ? Кроме того, просто возвращает текстовый узел XML ( . NodeKind () === "text" ).

Все это часть E4X , которая реализуется ActionScript 3 и обоими механизмами JavaScript.

1
ответ дан 4 December 2019 в 23:39
поделиться

Как сказал Элайджа, это синтаксис E4X, который не будет работать нигде, кроме Mozilla. Похоже, что вы не используете его для чего-либо связанного с XML, а просто полагаетесь на то, что неявный метод toString объекта XML будет таким же, как и исходная разметка. ECMA-357 (спецификация E4X) не определяет точных правил разбора и сериализации XML, поэтому не гарантирует, например, удаление маркеров за вас. IMO полагаться на это даже в Firefox сомнительно.

В любом случае, это не решает проблемы экранирования содержимого для использования внутри блока script... в частности, последовательность все еще недопустима в HTML4, вся эта куча недопустима в XHTML, и вам все еще придется беспокоиться о последовательностях и ]]> в содержимом. Так что на самом деле вы ничего не выиграли... в лучшем случае, вы получили многострочную строку во внешних скриптах, за счет поддержки всех остальных браузеров. Я не думаю, что это действительно того стоит.

1
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: