2016-10-31 8 views
2

신뢰할 수없는 텍스트를 HTML 문서에 삽입 할 때 이스케이프해야하는 특정 특수 문자가 있습니다 (예 : <, &, "등)."(인용 된 속성의 경우). 예를 들어 :<option> 태그 안의 텍스트를 올바르게 이스케이프 처리하는 방법은 무엇입니까?

<div>Some tags are <b> and <div></div> 

가된다 :

<div>Some tags are &lt;b&gt; and &lt;div&gt;</div> 

(하나는 &있다 필요성을 논의 할 수 있습니다하지만 여기에 해당하지 않습니다.)

옵션 태그 안에 큰하지만 관하여

? 텍스트를 "< / 옵션 >"으로 지정하려면 어떻게해야합니까?

이 작동하지 않습니다

<option>&lt;&sol;option&gt;</option> 

는 내가 발견하면 HTML 문자 엔티티 (& LT ;, & gt;에 등)가 삭제됩니다 있다는 것입니다. Chrome과 Firefox를 모두 시도했습니다. 이것은 option 태그가 중첩 된 태그를 포함 할 수 없다는 것과 관련이 있다고 가정합니다. Google은이 일에서 나를 실패했습니다. :(

그리고 관련 질문 : < 옵션 이후 > 위, 우리는 < 스크립트 >는 자신의 행동이 알고있는 특별한 탈출 행동을 가지고 전체 목록은 어딘가 특별한 탈출 동작을 모든 HTML 태그가있다. 거기에 규칙이 무엇인지?

감사합니다. 내가 제대로 질문을 이해한다면 아래의 코드에서 입증 된 바와 같이, 당신은 완벽하게 미세 <option> 태그 내부의 HTML 엔티티 탈출 할 수

+0

을 수행하지만 당신은''등의 옵션을 만들려고? 그것은 잘못된 HTML입니다. –

답변

0

(파이어 폭스에서 테스트를, 크롬 & 사파리)

따라서 옵션 태그 안에 </option> 텍스트를 넣을 수 있습니다. 중간 </option> 비록

<option></option></option> 

닫는 태그로 취급되지 않고는 같습니다이있는 것으로

은 본질적으로는 동일하다 <> 문자를 나타내는 HTML 엔티티를 사용하여 수행됩니다 브라우저 보조 노트로

에서 그런 식으로는 문자를 탈출 할 때 <option> 태그를 사용하는 유일한 제한은 :before:after CSS 의사 요소에 낳는다. W3은 이러한 의사 요소를 사용하여 <option> 태그에 내용을 추가/추가 할 수 없음을 나타냅니다. 어떤 이유로, 파이어 폭스 48이 가리키고 작업

#css-option:before { 
 
    content: "any text"; 
 
}
<select> 
 
    <option>&lt;/option&gt;</option> 
 
    <option>&#60;/option&#62;</option> 
 
    <option>&lt;&sol;option&gt;</option> 
 
    <option id="css-option"></option> 
 
</select>

+1

그건 나를 위해 일했습니다. 어떻게 든이 나쁜 짓을 저에게하는 버그가 있어야합니다. 어쩌면 오늘 밤에 쉬어야하고 잘 수 있습니다. :) – Dave