Safari在测试时陷入无限循环-有什么出路吗?

Safari在测试时陷入无限循环-有什么出路吗?,safari,infinite-loop,infinite,Safari,Infinite Loop,Infinite,我希望有人能在这里帮助我-我正在测试一些javascript,并在while循环中发出警报,以显示一些变量是如何变化的,但是。。。我把它放错行了,现在Safari(在Mac上)正在循环警报。是否有任何方法可以在不强制退出应用程序的情况下停止它(我不想这样做,因为我打开了其他窗口)。抱歉,但没有。唯一的解决方法是,如果您可以在警报之间关闭特定选项卡,但如果它们在关闭框后立即弹出,那你就无能为力了。我刚刚在OSX Lion的Safari 5.1上遇到了这种情况。在谷歌搜索了很多遍后,我找不到答案。我

我希望有人能在这里帮助我-我正在测试一些javascript,并在while循环中发出警报,以显示一些变量是如何变化的,但是。。。我把它放错行了,现在Safari(在Mac上)正在循环警报。是否有任何方法可以在不强制退出应用程序的情况下停止它(我不想这样做,因为我打开了其他窗口)。

抱歉,但没有。唯一的解决方法是,如果您可以在警报之间关闭特定选项卡,但如果它们在关闭框后立即弹出,那你就无能为力了。

我刚刚在OSX Lion的Safari 5.1上遇到了这种情况。在谷歌搜索了很多遍后,我找不到答案。我四处挖掘,找到了解决办法:

  • 强制退出狩猎
  • 打开目录~/Library/Safari/Extensions
  • 删除您的分机
  • 开放式狩猎

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

    我也遇到了同样的问题。 我用编辑器编辑了一个文件,并连接到ftp。然后,我在safari中打开了一个选项卡并测试了文件->我陷入了无限警报循环。因此,我所做的(当然,只有当相关文件在线而非本地时,此解决方案才会起作用)

    • 强制退出safari(必须将safari设置设置设置为 标签页)
    • 然后关闭WLAN连接
    • 打开浏览器,关闭“无限循环”选项卡,然后再次退出safari
    • 打开WLAN,打开浏览器,fin

    我可以通过单击警报上的“确定”(或按enter键),然后立即按
    Command-W
    来关闭选项卡。注意:花了好几次时间才找到合适的时机


    然后,在我的例子中,出现了一个确认警报,询问我是否确定要离开该页面。然后,循环警报在顶部弹出。因此,我将循环警报放置在确认警报的顶部,以便循环警报的“OK”按钮直接位于确认警报的“OK”按钮之上。然后,我双击(非常快)确定按钮(你也可以尝试双击回车键)来关闭这两个警报。

    在谷歌浏览器上试试这个。它们的浏览器引擎与Safari相同。如果他们有这个问题,他们一定很早就解决了。为什么苹果公司没有人和谷歌沟通来解决这个问题


    您需要在两种浏览器中查看的request.servervariable是HTTP\u USER\u AGENT

    要添加到我以前的评论中,这里是request.servervariable HTTP\u USER\u 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中的差异。正如我所说,要么是谷歌解决了这个问题,要么是苹果让这个漏洞潜入了它的浏览器的更高版本。需要我说更多吗?

    顺便说一句,FireFox会自动提示您重复出现弹出窗口,您只需说“不”。为什么Safari不这么做

    我在Safari中尝试了很多方法来阻止这种情况。您在这里讨论的问题也是网页利用的一个非常愚蠢的漏洞,他们使用pageUnload事件通过对话框诱捕用户

    你将不得不被迫辞职。但是,再次打开Safari时请按住Shift键,以防止加载最后的页面。或者,重新发布/重新保存您的代码,这样当Safari加载页面时,您就不会出现这个问题

    以后,不要使用
    alart()
    查看此类信息,只需将其写入页面上的空div即可

    在jQuery中,在循环代码中执行以下操作:

    $('#testDiv').html('myVarA = ' + myVarA + ' myVarB = ' + myVarB + '<br>');  //write variables to test div.
    
    $('#testDiv').html('myVarA='+myVarA+'myVarB='+myVarB+'
    ')//将变量写入测试div。

    $('#testDiv').append('myVarA='+myVarA+'myVarB='+myVarB+'
    ')//使用换行符将变量追加到testdiv。
    并将其添加到您的页面:

    <div id="testDiv">Test Results Here</div>
    
    这里的测试结果
    

    通过将变量写入DIV,不仅可以观察变量,还可以避免弹出循环,并且可以正常与动态页面交互。根据需要使用“html”或“append”。

    HALELUYAH我觉得自己像个白痴。这也发生在我身上。快速修复:右键单击警报框,将其移动到右上角,并将(x)按钮与浏览器窗口的按钮对齐。双击。它将再次弹出,但再次按下(x),它将关闭safari。在Windows上工作。

    我在Safari 8(约塞米蒂)中陷入了无限循环。杀死Safari没有帮助,因为当Safari再次启动时,标签会重新打开


    关闭Safari,删除
    ~/Library/Safari/LastSession.plist
    ,然后再次启动Safari。没有以前的选项卡重新打开,问题已解决

    我就是这么想的。哦,好吧!是的,循环中唯一的事情就是警报,所以它非常即时。好的,没有更多的回复,几乎是时候离开了。。。我得把它关了。无论如何谢谢你!Safari将检测您何时在重新打开选项卡时强制退出,并提供打开干净浏览器的功能。不幸的是,它不允许你选择标签。我认为这是最聪明的解决方案。我访问了一个恶意软件站点,使我处于无限警报循环中,但Safari缓存了它,所以即使关闭我的网络也不够。在重新打开Safari之前,我破坏了
    ~/Library/Caches/com.apple.Safari
    ,然后我可以关闭有问题的选项卡。
    <div id="testDiv">Test Results Here</div>