Поскольку ограничения межсайтового скриптинга не позволяют вам получать доступ к внешним HTTP-ресурсам через Ajax, вы должны использовать (встроенные) фреймы.
Мне известен только ОДИН способ запрета выполнения сценариев во фреймах. Однако Chrome не поддерживает этот метод.
var untrusted = document.getElementById("iframe-3rd-party");
untrusted.designMode = "On"; //No script can be run from the frame any more.
Если вы нашли способ избежать межсайтовых ограничений (например: CORS, X-Access-Control-Allow ), удалите теги сценариев и обработчики событий из кода. :
//xmlhttp_responsestring holds the responseText property of the XMLHttpRequest object
xmlhttp_responsestring
.replace(/<script[^>]*?>\s*\/\/\s*<\[CDATA\[[\S\s]*?]]>\s*<\/script\s*>/gi, "")
.replace(/<script[\S\s]+?<\/script\s*>/gi,"")
.replace(/ o([nN])/g," o$1").replace(/ O([Nn])/g," O");
Все теги сценариев и все обработчики событий удаляются таким образом: все символы, которые начинаются с пробела, а затем "вкл", заменяются объектами HTML. Текст будет по-прежнему читабелен, пока слушатели событий отключены.
Обратите внимание, что последний фрагмент кода only имеет дело с тегами сценария и обработчиками событий. Он не имеет дело с внешними объектами, такими как Java-апплет и фреймы. Смотрите мой другой ответ для более продвинутой функции очистки.