Safari застрял в бесконечном цикле во время тестирования - есть ли выход? - PullRequest
3 голосов
/ 08 ноября 2010

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

Ответы [ 9 ]

8 голосов
/ 18 февраля 2014

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

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

2 голосов
/ 27 февраля 2014

Кстати, FireFox автоматически запросит у вас повторяющиеся всплывающие окна, и вы можете просто сказать «нет». Почему Safari не делает этого?

Я пробовал множество способов остановить это в Safari. Проблема, которую вы обсуждаете здесь, также является очень глупым эксплойтом веб-страниц, которые используют событие pageUnload для захвата пользователей с помощью диалогового окна.

Вам придется принудительно выйти. Однако при повторном открытии Safari удерживайте нажатой клавишу «Shift», чтобы предотвратить загрузку последних страниц. Или перепечатайте / повторно сохраните свой код, чтобы при загрузке страницы Safari у вас не возникало этой проблемы.

В будущем не используйте alart() для просмотра информации такого рода, просто запишите ее в пустой раздел на своей странице.

В 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, вы можете не только наблюдать за переменными, вы избегаете всплывающего цикла и сможете нормально взаимодействовать со своей динамической страницей. При необходимости используйте "html" или "append".

2 голосов
/ 17 января 2012

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

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

Я знаю, что этот вопрос задавался давно, но это первый результат в Google для "Расширение Safari, застрявшее в бесконечном цикле", поэтому я подумал, что оно стоит обновления.

2 голосов
/ 08 ноября 2010

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

1 голос
/ 16 января 2014

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

  • Принудительно выйти из сафари (настройки сафари должны быть запомнены вкладки)
  • Чем отключить соединение WLAN
  • Откройте браузер, закройте вкладку «вызывать бесконечный цикл» и снова выйдите из Safari
  • Включить WLAN, открыть браузер, fin .
0 голосов
/ 20 октября 2014

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

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

0 голосов
/ 07 июля 2014

HALELUYAH Я чувствую, как идиот.Это случилось и со мной.Быстрое исправление: щелкните правой кнопкой мыши окно оповещения, переместите его в верхний правый угол и выровняйте кнопку (x) с кнопкой в ​​окне браузера.двойной щелчок.это всплывет еще раз, но снова нажмите (x) и закроет сафари.Работал на Windows.

0 голосов
/ 21 февраля 2014

Для добавления к моим предыдущим комментариям здесь приведены результаты переменной request.servervariable HTTP_USER_AGENT:

Chrome:

Mozilla / 5.0 (Windows NT 6.1) AppleWebKit / 537.36 (KHTML, например,Gecko) Chrome / 31.0.1650.63 Safari / 537.36

Safari:

Mozilla / 5.0 (Windows NT 6.1) AppleWebKit / 534.57.2 (KHTML, как Gecko) Версия / 5.1.7 Safari /534.57.2

Вы можете заметить разницу в используемом AppleWebkit.Как я уже сказал, либо Google столкнулся с этой проблемой и решил ее, либо Apple позволила этой ошибке проникнуть в более позднюю версию своего браузера.Должен ли я сказать больше?

0 голосов
/ 21 февраля 2014

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

Переменная request.server, которую вам нужно посмотреть в обоих браузерах, - HTTP_USER_AGENT

...