2010-11-08 51 views
3

我希望有人可以帮助我在这里 - 我正在测试一些JavaScript,并在一个while循环中显示一个警告,以显示一些变量如何变化,但是...我把它放在错误的行,现在的Safari(在Mac上)只是循环警报。有没有什么办法可以在没有强制退出应用程序的情况下阻止它(当我打开其他窗口时,我不想这样做)。Safari在测试时陷入了无限循环 - 任何出路?

回答

2

对不起,但没有。解决这个问题的唯一方法是,如果您可以关闭警报之间的特定选项卡,但如果在关闭该框后立即弹出,则无法执行任何操作。

+0

这就是我的想法。好吧!是的,循环中唯一的是警报,所以它非常直接。 – Mike 2010-11-08 17:15:10

+0

好吧,没有更多的答复,它几乎是时候离开......将不得不关闭它。不管怎么说,还是要谢谢你! – Mike 2010-11-08 17:42:21

2

我刚刚在OS X Lion的Safari 5.1上遇到了这种情况。经过大量的谷歌搜索后,我无法找到答案。我做了一些周围挖掘,并找到了解决办法:

  1. 强制退出Safari
  2. 打开目录〜/库/ Safari浏览器/扩展
  3. 删除您的扩展
  4. 打开Safari

我知道这个问题很久以前就被问到了,但它是谷歌“Safari扩展陷入无限循环”的第一个结果,所以我认为这值得更新。

1

我刚刚有同样的问题。 我用编辑器编辑了一个文件并连接到了ftp。然后,我在safari中打开了一个标签,并测试了该文件 - >我陷入了无限的警戒循环。所以,我做了什么

  • 强制退出Safari浏览器(该解决方案将导致只有在有关文件是在网上,而不是本地工作)(Safari浏览器设置必须付诸记住 标签)
  • 比关闭WLAN连接
  • 打开浏览器,关闭“无限循环造成”选项卡,并再次退出Safari
  • 开启WLAN,开启浏览器,
+0

我认为这是最聪明的解决方案。我打了一个恶意软件网站,这让我陷入了无限的警戒环境,但Safari已经缓存了它,所以即使关闭我的网络也是不够的。在重新打开Safari之前,我抛弃了'〜/ Library/Caches/com.apple.Safari',然后我可以关闭违规标签。 – duozmo 2015-03-04 18:17:03

8

我能够通过单击警报(或按下Enter键)上的“确定”关闭选项卡,然后立即按​​。注意:需要多次尝试才能使时机恰到好处。

然后,在我的情况下,弹出一个确认提醒,询问我是否确定要导航离开该页面。然后,循环警报弹出。因此,我将循环警报定位在确认警报的顶部,以便循环警报的“确定”按钮直接位于确认警报的“确定”按钮上方。然后,我在“确定”(OK)按钮上双击(非常快)(您也可以尝试双击输入)来关闭这两个警报。

+0

这对我有用。非常感谢! – Emmanuel 2014-12-02 18:07:14

0

在谷歌浏览器上试用此功能。他们拥有与Safari相同的浏览器引擎。如果他们有这个问题,他们一定早就解决了。为什么苹果没有人不与Google沟通来解决这个问题?

你需要看看在这两个浏览器的request.servervariable是HTTP_USER_AGENT

0

要添加到我以前在这里的评论是请求的结果。servervariable变量HTTP_USER_AGENT:

铬:

的Mozilla/5.0(Windows NT的6.1)为AppleWebKit/537.36(KHTML,例如Gecko)铬/ 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是否遇到了这个问题并解决了这个问题,或者苹果都让这个bug在它的浏览器的更高版本中蔓延。需要我多说?

2

顺便说一句,FireFox会自动提示你重复弹出,你可以说“不”。为什么Safari不这样做?

我已经尝试了很多方法来在Safari中停止此操作。您在这里讨论的问题也是网页的一个非常愚蠢的漏洞,它们使用pageUnload事件通过对话框来捕获用户。

您将不得不强制退出。但是,再次打开Safari时按住Shift键可以防止加载最后一页。或者,重新发布/重新保存您的代码,以便在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,你不仅可以观察变量,你将避免弹出循环,你将能够与你的动态正常页面根据需要使用“html”或“append”。

+0

Safari会在您重新打开标签页时强制退出,并提供打开干净的浏览器的功能。不幸的是,它不会让你挑选标签。 – duozmo 2015-03-04 18:12:52

0

HALELUYAH I feel like a IDIOT。这也发生在我身上。快速修复:右键单击警告框,将其移至右上角并将(x)按钮与浏览器窗口的按钮对齐。双击。它会再弹出一次,但再次弹出(x),它会关闭Safari。在Windows上工作。

0

我只是在Safari 8(优胜美地)无限循环中卡住了。杀Safari浏览器并没有帮助,因为当Safari再次启动时该选项卡会重新打开。

封闭的Safari,删除~/Library/Safari/LastSession.plist并再次启动Safari。没有以前的标签重新打开,问题解决!