문제

이 코드가 있습니다.

<script language="javascript" type="text/jscript">
  document.write("<img src='http://dm.leadgenesys.com/jpgp.lgt?en=P.........TP_Q=&amp;ur=' + escape(document.referrer) + ''  border='0' alt='no alt' />");
</script>

그리고 ... 검증하려고 할 때이 오류가 주어졌습니다.

문서 유형은 여기에서 "IMG"요소를 허용하지 않습니다.

… rer) + ' "border ="0 "alt ="alt " />');

위에서 지명 된 요소는 허용되지 않는 상황에서 발견되었습니다. 이는 내부 "헤드"대신 "바디"섹션의 "스타일"요소와 같이 중첩 된 요소 또는 겹치는 두 개의 요소 (허용되지 않음)가 잘못된 중첩 요소를 가지고 있음을 의미 할 수 있습니다.

이 JavaScript W3C를 준수하기 위해 무엇을 할 수 있는지 아십니까?

도움이 되었습니까?

해결책

단순 : JavaScript를 HTML로 검증하려고하지 마십시오.

여러 가지 방법 으로이 작업을 수행 할 수 있습니다. 그러나 가장 좋은 점은 별도의 JS 파일로 옮기고 짧은 스크립트에서 호출하는 것입니다.

<body>
...
<script type="text/javascript" language="javascript">WriteImage();</script>
...
</body>

... 또는 더 나은 아직 도랑 document.write() DOM이로드 된 후 완전히 조작하고 DOM을 조작합니다.

또한보십시오: 눈에 띄지 않는 JavaScript

다른 팁

유효성 검사기를 침묵시키는 또 다른 방법 ...

다음과 같이 말하십시오.

<script type="text/javascript">
/* <![CDATA[ */
your_javascript_here("<" + ... ;
/* ]]> */
</script> 

CDATA 부분은 유효성 검사기에 충분해야합니다. / * 스타일 댓글 * /는 CDATA 태그를 인식하지 못하는 이전 브라우저를위한 것입니다 (그렇지 않으면 JavaScript를 깨뜨릴 수 있음).

어때

<script>
<!--
var i = null;
if ((i/0) == 12)
  alert("whooo! pack your things, as it's starting to rain cats and dogs!");
--><script>

"스크립트"의 내용이 "HTML 주석"내부에 있는지 확인하십시오.

당신은 아마도 당신을 가질 것입니다 <script> 당신의 요소 <head>, 본질적으로 당신은 당신을 만들려고합니다 <img> 작동하지 않는 문서의 헤드에서. 스크립트를 넣어야합니다 <body>.

그러나 나는 당신을 추천합니다 DOM을 통해 요소를 추가하십시오 대신, 당신은 이런 종류의 문제에 빠질 가능성이 적기 때문입니다.

HTML4 표준의 일부입니다. 당신은 탈출해야합니다 "

<SCRIPT type="text/javascript">
  document.write ("<EM>This will work<\/EM>")
</SCRIPT>

또 다른 솔루션은 아마도 외부 파일에서 JS 코드를 이동하는 것입니다.

참조

document.write("<" + "img … /" + ">");

또는:

document.write("\x3Cimg … /\x3E");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top