XML-документы не имеют innerHTML
, а nsIScriptableUnescapeHTML
- это один из способов анализа html, но он предназначен для случаев, когда HTML может быть небезопасным; как вы узнали, он отбрасывает узлы сценария (и некоторые другие вещи).
Однако есть несколько альтернатив. Вы можете использовать свойство responseXML
, хотя это может быть неоптимальным, если вы не получаете контент XHTML.
Вы также можете использовать iframe. Это может показаться старомодным, но работа iframe состоит в том, чтобы взять url (свойство src
) и обработать получаемый контент, что обязательно означает его разбор и построение DOM. В общем случае, когда расширение, работающее под управлением Chrome, делает это, ему следует позаботиться о том, чтобы удаленному контенту не предоставлялись те же привилегии chrome. К счастью, с этим легко справиться; просто поместите type="content"
на iframe. Однако, поскольку вы хотите импортировать DOM в документ XUL оптом, вы, должно быть, уже убедились, что этот удаленный контент всегда будет в безопасности. Вы, очевидно, используете соединение HTTPS, и вы позаботились о том, чтобы проверить подлинность сервера, убедившись, что он отправляет правильный сертификат. Вы также убедились, что сервер не был взломан и не доставляет вредоносный контент.