Я не знаю, произошло ли это, но document.write
и document.writeln
не будут работать, если ваш сайт сообщит браузеру, что это строгий XHTML. Я считаю, что для этого вам нужно использовать строгий DOCTYPE и установить для заголовка Content-Type
значение application/xml+xhtml
, а не text/html
(по умолчанию для многих серверов). Это потому, что манипулирование DOM таким образом может сломать его. Например, если я опущу следующую половину проверенной веб-страницы:
<script type="text/javascript">
<!--
document.write("</body>");
// -->
</script>
Документ будет проверен и будет XHTML-совместимым, но не будет работать в большинстве браузеров.
Альтернативой является создание узла 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>