Вы действительно используете свой XHTML как XML (application/xhtml+xml
)?Если нет, вам пока не о чем беспокоиться.document.write
по-прежнему будет работать в режиме text/html
, хотя в целом это определенно плохая практика.
Если вы действительно используете нативный XHTML ... хорошо, я подозреваю, что у вас может возникнуть больше проблем, чем просто document.write
, поскольку есть немало вещей, которые могут запутать сценарий, когда он не ожидает запуска в XHTML.Но вы можете решить эту проблему, саботируя document.write
.
Самый простой способ будет выглядеть примерно так:
document.write= function(s) {
document.getElementById('placetoputwrittenstuff').innerHTML= s;
};
, однако вам потребуется больше возиться, если он попытается написать <script>
теги (поскольку их установка с помощью innerHTML
не выполняет их; вам придется выбирать их с помощью getElementsByTagName
и запускать каждый из них вручную) или частичные биты элементов при различных вызовах write
(в этом случаевам придется собирать строки и склеивать их по окончании).