@romashka_sky

Как заглушить javascript исключения в iframe?

Есть такой шаблон:
<iframe src="data:text/html;charset=utf-8,{{ item.description }}"></iframe>


вместо {{ item.description }} вставляется html-код, содержащий скрипты, которые могут содержать ошибки. Нужно чтобы эти ошибки не выходили за пределы iframe, То есть не влияли на основную страницу. Как лучше поступить в таком случае. Выполнение js в iframe не обязательно, то есть можно попросту вырезать скрипты, или каким-то образом отключить их.

Как вариант, можно просто пробежаться по коду и вырезать все скрипты, но это сложно
  • Вопрос задан
  • 3054 просмотра
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Отлавливать ошибки в контексте выполнения скриптов iframe'а.

var iframe = document.createElement('iframe'),
	content = 'data:text/html;charset=utf-8,<!DOCTYPE html><html><head><meta charset="utf-8">' +
	'<script>document.writew("<h1>Hello!</h1>");<\/script>' +
	'</head><body><h2>World!</h2></body></html>';

	document.body.appendChild(iframe);
	iframe.contentWindow.addEventListener('error', function (e) {
		e.stopPropagation();
		e.preventDefault();
		console.log(e);
	}, false);
	iframe.src = content;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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