Если вы начинаете с javascript, сейчас лучшее время, чтобы научиться не трогать ненадежные свойства; externalHTML - один из них; в то время как поддерживаемый IE, Chrome и Opera, Firefox не поддерживает его.
Принимая оригинальный код, это будет работать:
var content = document.getElementById("test").outerHTML;
var safe = content.replace(/</g,"<").replace(/>/g,">");
docuemnt.write(safe);
Но использование «externalHTML» - это плохая идея, равно как и «document.write ()». Гораздо лучше иметь div с идентификатором на вашей странице и указывать там текст, а не «где бы ни находился ваш код, когда вызывается document.write ()»:
<html>
<head>...</head>
<body>
...
<div id="mylog"></div>
...
<body>
</html>
И затем заполняя это либо:
// set the content for div 'mylog'
document.getElementById("mylog").innerHTML = content;
или используя что-то вроде jQuery, которое дает вам API, который скрывает все сумасшедшие вещи, которые могут или не могут быть поддержаны, и гарантирует, что если вы вызовете это, это будет работать:
// get html content
var content = $("#test").html();
// make it print safe
var safe = content.replace(/</g,"<").replace(/>/g,">");
// add it to the log as text
$("mylog").append(safe);