.getElementById()

special Tags] 특수 태그들을 한데 묶어 테스트해봤습니다.

killofki 2013. 9. 14. 01:27
0)
여러개 웹브라우져들을 쓰다보니,

1)
어떤 태그는 예상(?)이 되는데,
특정 태그들은 애매하게(?) 적용되는 경우가 있더라구요.

.. 문법상 오류가 있는 source 입니다만,
일부러 그런 오류 포함해서 기입한 것이니, 참고하시기 바랍니다.

*주의* php 로 컴파일 되는 환경에서는 오류날 소스입니다. 참고해두세요.


2)

<html>
<?abc 123 "<html>04</html>05<script>/*06*/ window.v130914_1='<html>07</html>'; /*08*/</script>"
?>
<?def 123 "<html>09</html>10"
?>
<script>
window.v130914_1='<script>11</script>12';
</script>
</html>



3)
위에 있는 소스를 실행(?)하면,

<script> 태그는 </script> 태그에서 수렴하게 됩니다.
(그래서, <script> 는 태그 내로 숨어들 수 있는거죠.)

..

문제는, php 와 관련있는 <? ?> 태그인데요,

4)

[ IE8 ]
" 로 인해서인지, 전체를 감싸안음. <? 는 최소 두글자를 받아내고 시작함.


..라고 적어놨군요.
개발자도구에서 DOM(이라고 해야할까요.. HTML 탭입니다..)을 보니


<html>
  <head>
    <title></title>
    <!-- c 123 "<html>04</html>05<script>/*06*/ window.v130914_1='<html>07</html>'; /*08*/</script>"
 -->
    <!-- f 123 "<html>09</html>10"
 -->
    <script>window.v130914_1='<script>11</script>
  </head>
  <body>
    텍스트 - 12'; 
    </script/>
    텍스트 - 전체 : 
    </script/>
  </body>
</html>


로 표현되어있네요.
소스보기일 때는 색상(?)이 지정된 듯 싶었지만,
정작, DOM 에서는 주석으로 표현되고 있습니다.


5)

[ chrome, firefox, safari, opera ]
: <? 이후 첫번째 > 만날 때 완료시켜버림.



<html>
  <!--?abc 123 "<html-->
  <head></head>
  <body>
    0405
    <script>
      /*06*/ window.v130914_1='<html>07</html>'; /*08*/
    </script>
    "
    ?&gt;
    <!--?def 123 "<html-->
    0910"
    ?&gt;
    <script>
      window.v130914_1='<script>11
    </script>
    12';
  </body>
</html>


일단 chrome 일 때의 DOM 형태입니다.

두번째 html 태그에서 > 를 <? 태그 종료로 보고, 변환을 해버렸네요.
<? 태그가 오래 못(?)가는 형태라고 봐야겠죠.

IE8 과 대비되는 점은 역시, <? 이후 두글자를 먹지 않(?)았다는 점입니다.
왠지, IE8 내부에 web language 컴파일러를 달 수 있다고 하는 것 같네요.

두번째 <? 태그도 <html> 태그에서 딱 막아버렸네요.


6)

[ firefox ] *추가*
: script 내에 있는 특정 코드는 가용코드로 전환해버림.


firefox 일 때의 DOM 입니다.


<html>
  <!--?abc 123 "<html-->
  <head></head>
  <body>
    0405
    <script>
      /*06*/ window.v130914_1='&lt;html&gt;07&lt;/html&gt;'; /*08*/
    </script>
    "
    ?&gt;
    <!--?def 123 "<html-->
    0910"
    ?&gt;
    <script>
      window.v130914_1='&lt;script&gt;11
    </script>
    12';
  </body>
</html>


-.-.. 좀 무시무시하군요.
외관상(?)으로는 chrome 과 달라보이지 않았는데요,

스크립트에서 사용하는 스트링, 내부의 특수문자가 달라졌어요..
표현을 한다는 점에서는 동일해보이긴 합니다만,
저렇게 되면, 스트링의 길이가 달라질 수 있거든요.

물론, 콘솔로 직접 확인해보니, 스트링 길이는 15로 달라지지 않았습니다만,
저 코드를 HTML editable 상태에서 복붙(복사 & 붙여넣기 - copy & paste)한 경우라면, 얘기가 달라지겠죠.


7)

[ opera ]
: 소스코드의 구분점까지는 보임.


뭔가 조금 애매한 표현이라 한참을 봤는데요, chrome 과 다른점은 딱히 없고

다른 점이라면, 소스보기..를 한 경우인 것 같네요.
색상이 일반태그와 script 태그, 그리고 텍스트로만 나눠져 있더라구요.


8)

[ safari ]
: 개발자도구 구동법 모름 = =;.. 소스 코드만 볼 수 있음. 구분점은 확인 못했음. 

 
= =;.. 완전한 확인은 못했습니다만, 표시되는 화면은 chrome 등과 거의 유사합니다.


..

wantHate killofki@.