На странице что-то вроде jsFiddle, который выполняет пользовательский Javascript, есть ли способ остановить / прервать «проблемные» сценарии, работающие в iframe?
Думаю, основным классом проблемных сценариев будут бесконечные циклы. Браузеры хорошо справляются с несколькими предупреждениями, но, например, скрипт для (var i = 0; ++ i; i <100) {/ * do stuff * /}
будет продолжаться вечно.
Как я могу либо обнаружить и не бежать, либо бежать и останавливаться, скажем, после 10 секунд работы, сценарий?
Удаление iframe - это нормально, но я хочу удалить его, только если сценарий все еще выполняется через 10 секунд, но я не хочу удалять его, если сценарий остановлен.
Вот как я представляю, что страница будет работать. Если у вас есть лучшее решение, дайте мне знать ...
Страница ввода содержит текстовое поле
и пустой фрейм
. Пользователь вводит свой скрипт в текстовое поле
, и когда он готов, он нажимает и запускает
. Затем (за кулисами) создается отдельная страница, содержащая пользовательский скрипт в исполняемой форме на странице HTML. Источник
iframe установлен на страницу с исполняемым кодом. Все это происходит динамически без обновления страницы.