Я надеюсь, что кто-то может помочь мне здесь - я тестирую некоторый javascript и ставил предупреждение в цикле while, чтобы показать, как изменяются некоторые переменные, но ... Я ввел его в неправильную строку и теперь Safari (на Mac) просто зацикливает предупреждение. Есть ли способ остановить его без принудительного выхода из приложения (что я не хочу делать, поскольку у меня есть другие окна открыты).Safari застрял в бесконечном цикле во время тестирования - в любом случае?
ответ
Извините, но нет. Единственный способ обойти это можно, если вы можете закрыть конкретную вкладку между предупреждениями, но если они появятся сразу после закрытия поля, то вы ничего не сможете сделать.
Я только что это случилось со мной в Safari 5.1 в OS X Lion. После многого Гуглинга я не смог найти ответ. Я сделал некоторые копать вокруг и нашли решение:
- Force Quit Safari
- Откройте каталог ~/Library/Safari/Extensions
- Удалить ваше расширение
- Открыть Safari
I знаете, этот вопрос задан давно, но это первый результат в Google для «расширения Safari, застрявшего в бесконечном цикле», поэтому я решил, что это стоит обновления.
У меня была такая же проблема. Я редактировал файл с редактором и подключался к ftp. Затем я открыл вкладку в сафари и протестировал файл -> я застрял в бесконечном цикле предупреждения. Итак, что я сделал (это решение будет причины работать только тогда, когда в отношении файлов в сети и не местные)
- Force выхода из сафари (сафари настройки должны быть поставлены на запоминание вкладки)
- чем выключить WLAN подключение
- Открыть браузер, закройте «бесконечную петлю вызывая» вкладку, и выйти из сафари снова
- Включите WLAN, откройте браузер, плавника.
Я думаю, что это самое умное решение. Я попал на сайт вредоносного ПО, который поставил меня в бесконечный цикл оповещений, но Safari кэшировал его, поэтому даже отключения моей сети было недостаточно. Я перепутал '~/Library/Caches/com.apple.Safari' перед повторным открытием Safari, а затем мне удалось закрыть вкладку« Нарушение ». – duozmo
Мне удалось закрыть вкладку, нажав «ОК» на предупреждение (или нажав enter), а затем сразу же нажав Command-W
. Примечание. Для правильного выбора времени потребовалось несколько попыток.
Затем, в моем случае, появилось предупреждение с подтверждением, было ли я уверен, что я хочу перейти от страницы. Затем появилось предупреждение о петле. Таким образом, я позиционировал предупреждение о запуске над предупреждением о подтверждении, чтобы кнопка «ОК» предупреждения о цикле была непосредственно над кнопкой «ОК» предупреждения о подтверждении. Затем я дважды нажал (очень быстро) кнопку «ОК» (вы также можете попробовать дважды нажать enter.), Чтобы закрыть оба предупреждения.
Это сработало для меня. Большое спасибо! – Emmanuel
Попробуйте это в Google Chrome. Они имеют тот же браузер, что и Safari. Если бы у них была эта проблема, они, должно быть, решили ее на ранней стадии. Почему кто-то из Apple не общается с Google, чтобы это исправить?
request.servervariable вы должны смотреть на обоих браузерах HTTP_USER_AGENT
Чтобы добавить мои предыдущие комментарии здесь являются результаты запроса.servervariable переменная HTTP_USER_AGENT:
Хром:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537,36 (KHTML, как Gecko) Chrome/31.0.1650.63 Safari/537,36
Сафари:
Mozilla /5.0 (Windows NT 6.1) AppleWebKit/534.57.2 (KHTML, например, Gecko) Версия/5.1.7 Safari/534.57.2
Вы можете заметить разницу в используемом AppleWebkit. Как я уже сказал, либо у Google была эта проблема, и она была решена, либо Apple позволила этой ошибке проникнуть в более позднюю версию своего браузера. Нужно ли мне сказать больше?
BTW, FireFox автоматически подскажет вам о повторных всплывающих окнах, и вы можете просто сказать «нет». Почему Safari не делает этого?
Я пробовал множество способов остановить это в Safari. Проблема, которую вы обсуждаете здесь, также является действительно глупым использованием веб-страниц, которые используют событие pageUnload, чтобы уловить пользователей в диалоговом окне.
Вам придется принудительно завершить работу. Однако удерживайте Shift вниз, когда вы снова откроете Safari, чтобы предотвратить загрузку последних страниц. Или перекомпостируйте/заново сохраните свой код, чтобы при загрузке страницы Safari у вас не было этой проблемы в первую очередь.
В будущем, не используйте alart()
, чтобы увидеть эту информацию, просто напишите ее на пустой div на своей странице.
В JQuery, сделать это в коде циклов, в:
$('#testDiv').html('myVarA = ' + myVarA + ' myVarB = ' + myVarB + '<br>'); //write variables to test div.
или
$('#testDiv').append('myVarA = ' + myVarA + ' myVarB = ' + myVarB + '<br>'); //append variables to test div, with a line break.
и добавить к странице:
<div id="testDiv">Test Results Here</div>
При написании переменных из к DIV, вы можете не только наблюдать за переменными, но и избегать цикла всплывающих окон, и вы сможете взаимодействовать с вашим дином amic-страница обычно. Используйте «html» или «append» по мере необходимости.
Safari обнаружит, когда вы принудительно завершите работу при повторном открытии вкладок, и предложит открыть чистый браузер. К сожалению, это не дает вам вкладки вишневого выбора. – duozmo
HALELUYAH Я ЧУВСТВУЮТ ИДЕЙТ. Это случилось и со мной. Быстрое исправление: щелкните правой кнопкой мыши окно предупреждения, переместите его в верхний правый угол и выровняйте (x) кнопку с кнопкой окна браузера. Двойной клик. он появится еще раз, но pres (x) снова, и он закроет сафари. Работал в Windows.
Я просто застрял в бесконечном цикле в Safari 8 (Йосемити). Killing Safari не помогло, так как вкладка снова откроется, когда Safari снова запустится.
Закрытое сафари, удалено ~/Library/Safari/LastSession.plist
и снова запущено Safari. Никакая предыдущая вкладка не открыта, проблема решена!
Вот что я думал. Ну что ж! И да, единственное, что в цикле - это предупреждение, так что это довольно быстро. – Mike
Хорошо, больше нет ответов, и почти время уходить ... придется закрыть его. Спасибо, в любом случае! – Mike