2009-11-28 8 views
2

여기 내 코드의 W3C 규정을 준수하면서. 내 JavaScript 코드 안에 HTML 태그가 필요하지 않습니다. 여기에 오류 메시지가 이걸하려고하면 그것은 생산의 :사용하여 HTML 태그는

문자 "<는"구분자의 첫 번째 문자입니다 만 확인하고 내 페이지 아무튼 있음을하면서 나는이 문제를 해결할 수있는 방법 데이터

로 발생 HTML 태그를 포함하는 문자열을 document.getElementById('myElement').innerHTML으로 전달하면 어지럽습니까? http://javascript.about.com/library/blxhtml.htm에서

답변

1
onmouseover="showDescription('Text', 'Text with HTML tags in them<br />More text');" 

속성 값, 당신은 HTML 인코딩해야한다 &, <하고 (여기 ") 속성 구분. 속성 값 내에 JavaScript가 있다는 사실은 아무런 차이가 없습니다. JavaScript가보기 전에 HTML 속성 값이 디코딩됩니다.

onmouseover="showDescription('Text', 'Text with HTML tags in them&lt;br />More text');" 

이 그 내용이다 CDATA 따라서 HTML4에 -escaped하지 &<script> 요소는 대조적이다. XHTML에는 CDATA 요소가 없습니다. <![CDATA[ 섹션을 추가하여 XHTML의 동작을 동일하게 만들 수 있지만 일반적으로 & 또는 < 문자를 사용하지 않으므로 스크립트 요소와 이벤트 처리기 속성 모두에서 문제가 발생하지 않도록 간단하게 처리 할 수 ​​있습니다.

onmouseover="showDescription('Text', 'Text with HTML tags in them\x3Cbr />More text');" 
5

당신은 문서에 다른 곳에서 별도의 <script>...</script> 태그 내부에 기능을 포장하고, 거기에 사용할 수 ...

<script> 
//<![CDATA[ 
    ...code... 
//]]> 
</script> 

:

이 중 하나를 수행 할 수 WER이 문제를 해결하려면 두가지. 가장 간단한 방법은 특히 Javascript에 한두 줄 이상의 내용이 포함되어있는 경우 Javascript를 페이지 외부에 두어 스크립트 유효성 검사를 중지하는 스크립트 태그 사이에 아무것도 넣지 않는 것입니다.

단지 한두 줄이라면 외부 스크립트를 만들 가치가 없으므로 스크립트 태그 사이에 내용을 그대로 두어 유효성 검사기에게이를 무시하도록 할 것입니다. 우리는 ... 이런 CDATA 태그 안에 자바 스크립트 코드를 삽입하여이 작업을 수행 할

-1

어떻게 < 스크립트에서이 퍼팅 ...> 블록에 대해 : 당신의 HTML에

var myText = 'Text with HTML tags in them<br />More text'; 

이상 :

<a href="#"> 
    <img src="myimage.jpg" 
    onmouseover="showDescription(
      'Text', myText);" 
    onmouseout="revertDescription();" 
    alt="Image description"> 
+0

첫 번째

1

%3E에 의해 %3C>에 의해 <를 교체하고 내용을 출력 할 때 언 이스케이프를 사용 : 문자열에서 문자 그대로의 또 다른 탈출이 해결하기 위해 사용할 수있는 사용할 수 있습니다.

이 확인되지 않습니다

function(){ 
return ('<b> bold </b>'); 
} 

이 같은 결과를 제공하고 유효성을 검사 :

function(){ 
return unescape('%3Cb%3E bold %3C/b%3E'); 
} 
관련 문제