DHTMLでHTMLソースを解読するのを妨害するスクリプト。
あちこちのサイトで見かけるソース。
javascript:document.body.innerHTML="<plaintext>"+document.all.tags("HTML")[0].outerHTML;
これを使うと生ではないにしろHTMLのソースが表示されてしまう。(※この解読コードはIEのみ動作)CODHTMLを作った私にとってはこれはある意味突破しなければいけない壁。考えた挙句、これを使用不能にするコードを思いついた。
この方法では、document.all.tagsメソッドを使ってHTML全体を取得している。これを妨害すればよい。つまり、document.all.tagsを上書きしてしまえばいい。好きなところに以下のソースを貼り付ける。
<script type="text/javascript">
<!--
document.all.tags = function(A){return ["text"];}
//-->
</script>
このソースはdocument.all.tagsメソッドの処理内容を上書きする。上書きされた関数は使用不能になるので、結果的に解読を阻止する。
同一ページ内にdocument.all.tagsを使ったスクリプトがあるとスクリプトが動作しなくなるので注意。
以下のように、上書きしたメソッド内にやりたい処理を追加する。こうするとURLから解読スクリプトが実行されたことを認識できたりする。
document.all.tags = function(A){alert("(ノ∀`)アチャー");return ["text"];}