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