Как можно дезинфицировать дерево DOM HTML из всех вхождений JavaScript, что означает: on(click|mouseover|etc)
, href:javascript...
, <script>
и все другие возможные варианты (встроенные) JavaScript при использовании JavaScript?Стриптиз JavaScript из HTML Дерево DOM с JavaScript
Например: Я хочу, чтобы пользователи загружали свой HTML-файл, копировали содержимое в тегах <body>
и вставляли его на одну из моих страниц. Я не хочу разрешать JavaScript в своих HTML-файлах. Я мог бы использовать <iframe sandbox>
, но я подумал, есть ли другой способ.
В чем проблема? Это было бы невероятно тяжело и на самом деле даже невозможно было удалить всех обработчиков, если вы не уничтожили и не воссоздали всю DOM. Похоже, что должен быть лучший способ. –
Как сказал @squint, вам, вероятно, потребуется заменить весь DOM. Но это может быть очень упрощено. Например, вы можете взять 'document.body.outerHTML' в виде строки, выполнить множество регулярных выражений, чтобы очистить код HTML, а затем заменить его обратно. – alesc
Обновлен вопрос, чтобы проиллюстрировать мой вариант использования. – Roger