将不受信任的文本插入HTML文档时,必须转义某些特殊字符(例如<,&,"等)。 ("用于引用属性)。例如:
<div>Some tags are <b> and <div></div>
变为:
<option></option></option>
(人们可以辩论对&amp; gt;的需求,但这里没有相关性。)
这很棒,但在选项标签内呢?如果我希望文字为&#34;&lt; / option&gt;&#34;,我该怎么做?
这不起作用:
{{1}}
我发现HTML字符实体(&amp; lt;,&amp; gt;等)被删除。我已经尝试过Chrome和Firefox。我假设这与选项标签不能包含嵌套标签的事实有关。谷歌在这方面让我失望。 :(
以及相关问题:自&lt; option&gt;具有特殊的转义行为,如上所示,我们知道&lt; script&gt;有自己的行为。是否存在具有特殊转义行为的所有HTML标记的某个完整列表以及有哪些规则?
感谢。
答案 0 :(得分:0)
如果我正确理解您的问题,如下面的代码段所示,您可以完全转义<option>
标记内的HTML实体(在Firefox,Chrome和Safari上测试)。
因此,您可以在选项标记内包含文本</option>
。这是使用代表<
和>
字符
基本上它与:
相同<option></option></option>
虽然中间</option>
不被视为结束标记,但它在浏览器中以这种方式显示
作为旁注,转义字符时使用<option>
标记的唯一限制在于:before
和:after
CSS伪元素。 W3建议您不能使用这些伪元素在<option>
标记之前添加/附加内容。虽然出于某种原因,在Firefox 48中这确实有用
#css-option:before {
content: "any text";
}
<select>
<option></option></option>
<option></option></option>
<option></option></option>
<option id="css-option"></option>
</select>