Как удалить все функции на странице?

Добрый день!

Через Tampermonkey получаю на странице нужный текст. Затем мне необходимо вставить его на совершенно чистую страницу.

Через document.write вставляю новую разметку:

<!DOCTYPE html>
<html>
  <head></head>
  <body></body>
</html>


Но функции и скрипты от предыдущей страницы продолжают работать как ни в чем не бывало. Как их вычистить из того места, где они есть? Чтобы была совершенно чистая страница?

Спасибо!
  • Вопрос задан
  • 616 просмотров
Пригласить эксперта
Ответы на вопрос 5
@Bhudh
document.head.outerHTML = document.head.outerHTML+' ';
document.body.outerHTML = document.body.outerHTML+' ';


Так head и body полностью обновятся и никаких обработчиков ни на чём не останется.
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Наверное, можно укокошить весь HTML старой страницы и создать поверх старой страницы iframe во всё окно. Он будет чист от скриптов и слушателей событий, и если ему дать достаточно большой z-index, то потенциально создаваемые старыми скриптами элементы не будут появляться поверх.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Можно удалить все до <html> включительно
document.body.parentElement.remove()

Объект window останется, конечно, и все переменные в нем.
Теоретически можно перебрать все его свойства, и по каким-то критериям поудалять "лишнее", но я не сомневаюсь в успехе этой затеи.
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
А если попробовать радикальную хирургию:
[].forEach.call(document.querySelectorAll('script'), function(i) {
		i.remove();
	})
Ответ написан
Krasnodar_etc
@Krasnodar_etc
fundraiseup
ИМХО, для такой задачи лучше подойдёт реализация через бэкенд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы