Задать вопрос

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

Добрый день!

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

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

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


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

Спасибо!
  • Вопрос задан
  • 618 просмотров
Подписаться 8 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 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
ИМХО, для такой задачи лучше подойдёт реализация через бэкенд.
Ответ написан
Ваш ответ на вопрос

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

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