2010-11-08 1 views
3

Я надеюсь, что кто-то может помочь мне здесь - я тестирую некоторый javascript и ставил предупреждение в цикле while, чтобы показать, как изменяются некоторые переменные, но ... Я ввел его в неправильную строку и теперь Safari (на Mac) просто зацикливает предупреждение. Есть ли способ остановить его без принудительного выхода из приложения (что я не хочу делать, поскольку у меня есть другие окна открыты).Safari застрял в бесконечном цикле во время тестирования - в любом случае?

ответ

2

Извините, но нет. Единственный способ обойти это можно, если вы можете закрыть конкретную вкладку между предупреждениями, но если они появятся сразу после закрытия поля, то вы ничего не сможете сделать.

+0

Вот что я думал. Ну что ж! И да, единственное, что в цикле - это предупреждение, так что это довольно быстро. – Mike

+0

Хорошо, больше нет ответов, и почти время уходить ... придется закрыть его. Спасибо, в любом случае! – Mike

2

Я только что это случилось со мной в Safari 5.1 в OS X Lion. После многого Гуглинга я не смог найти ответ. Я сделал некоторые копать вокруг и нашли решение:

  1. Force Quit Safari
  2. Откройте каталог ~/Library/Safari/Extensions
  3. Удалить ваше расширение
  4. Открыть Safari

I знаете, этот вопрос задан давно, но это первый результат в Google для «расширения Safari, застрявшего в бесконечном цикле», поэтому я решил, что это стоит обновления.

1

У меня была такая же проблема. Я редактировал файл с редактором и подключался к ftp. Затем я открыл вкладку в сафари и протестировал файл -> я застрял в бесконечном цикле предупреждения. Итак, что я сделал (это решение будет причины работать только тогда, когда в отношении файлов в сети и не местные)

  • Force выхода из сафари (сафари настройки должны быть поставлены на запоминание вкладки)
  • чем выключить WLAN подключение
  • Открыть браузер, закройте «бесконечную петлю вызывая» вкладку, и выйти из сафари снова
  • Включите WLAN, откройте браузер, плавника.
+0

Я думаю, что это самое умное решение. Я попал на сайт вредоносного ПО, который поставил меня в бесконечный цикл оповещений, но Safari кэшировал его, поэтому даже отключения моей сети было недостаточно. Я перепутал '~/Library/Caches/com.apple.Safari' перед повторным открытием Safari, а затем мне удалось закрыть вкладку« Нарушение ». – duozmo

8

Мне удалось закрыть вкладку, нажав «ОК» на предупреждение (или нажав enter), а затем сразу же нажав Command-W. Примечание. Для правильного выбора времени потребовалось несколько попыток.

Затем, в моем случае, появилось предупреждение с подтверждением, было ли я уверен, что я хочу перейти от страницы. Затем появилось предупреждение о петле. Таким образом, я позиционировал предупреждение о запуске над предупреждением о подтверждении, чтобы кнопка «ОК» предупреждения о цикле была непосредственно над кнопкой «ОК» предупреждения о подтверждении. Затем я дважды нажал (очень быстро) кнопку «ОК» (вы также можете попробовать дважды нажать enter.), Чтобы закрыть оба предупреждения.

+0

Это сработало для меня. Большое спасибо! – Emmanuel

0

Попробуйте это в Google Chrome. Они имеют тот же браузер, что и Safari. Если бы у них была эта проблема, они, должно быть, решили ее на ранней стадии. Почему кто-то из Apple не общается с Google, чтобы это исправить?

request.servervariable вы должны смотреть на обоих браузерах HTTP_USER_AGENT

0

Чтобы добавить мои предыдущие комментарии здесь являются результаты запроса.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 позволила этой ошибке проникнуть в более позднюю версию своего браузера. Нужно ли мне сказать больше?

2

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» по мере необходимости.

+0

Safari обнаружит, когда вы принудительно завершите работу при повторном открытии вкладок, и предложит открыть чистый браузер. К сожалению, это не дает вам вкладки вишневого выбора. – duozmo

0

HALELUYAH Я ЧУВСТВУЮТ ИДЕЙТ. Это случилось и со мной. Быстрое исправление: щелкните правой кнопкой мыши окно предупреждения, переместите его в верхний правый угол и выровняйте (x) кнопку с кнопкой окна браузера. Двойной клик. он появится еще раз, но pres (x) снова, и он закроет сафари. Работал в Windows.

0

Я просто застрял в бесконечном цикле в Safari 8 (Йосемити). Killing Safari не помогло, так как вкладка снова откроется, когда Safari снова запустится.

Закрытое сафари, удалено ~/Library/Safari/LastSession.plist и снова запущено Safari. Никакая предыдущая вкладка не открыта, проблема решена!