Monday, May 04, 2009

[JavaScript] document.write("<scr" + "ipt>")って?

最近色々なJavaScriptのソースを読む機会があったのだが、その中で妙な記述があるのを見つけた。


<script type="text/javascript">
...
document.write("<script type=\"text/javascript\" src=\"foo.js\">" + "</scr" + "ipt>");
...
</script>


これは、JavaScript中で別のファイルを読み込む時に使う。最初は、なんだこりゃ?と思ったが、よく考えてみると、もしdocument.writeの"</scr" + "ipt>"が"</script>"だったとすると、これが最初の<script>タグの対だと認識されてしまうからだというのが分かった。

しかし、こういったバッドノウハウで回避しないといけないような作りになっているこのスクリプトの方が問題だと思うのだが...

No comments: