これが起こったのかどうかはわかりませんがdocument.write
、document.writeln
サイトがブラウザに厳密な XHTML であると伝えている場合は機能しません。これを実現するには、厳密な DOCTYPE を使用し、Content-Type
ヘッダーを(多くのサーバーでのデフォルト)application/xml+xhtml
ではなくに設定する必要があると思います。text/html
これは、この方法で DOM を操作すると、DOM が壊れる可能性があるためです。たとえば、検証済みの Web ページの途中に次のコードを挿入したとします。
<script type="text/javascript">
<!--
document.write("</body>");
// -->
</script>
ドキュメントは検証され、XHTML に準拠しますが、ほとんどのブラウザーでは機能しません。
もう 1 つの方法は、電子メール アドレスを挿入する DOM ノードを作成し、ページが読み込まれたときに挿入することです。例えば:
<p>My email address is <span id="email"></span>.</p>
<script type="text/javascript">
<!--
document.body.onload = function() {
document.getElementById("email").textContent = String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,34,62,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,60,47,97,62);
};
// -->
</script>
または、jQuery がセットアップされている場合:
<p>My email address is <span id="email"></span>.</p>
<script type="text/javascript">
<!--
$( function() {
$("#email").text(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,34,62,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,60,47,97,62));
} );
// -->
</script>