1

在ActionScript 3,我让使用为Javascript调用:ExternalInterface调用崩溃的浏览器

ExternalInterface.call('javascriptFunction'); 

如果在Javascript中,有一个错误或阻塞调用,整个浏览器将冻结。我无法在Firefox中使用Firebug进行调试,因为通过回调进行的操作也会使浏览器崩溃。我如何去调试呢?

function javascriptFunction() { 
    alert('called from AS3'); 
    // OR 
    nonExistent.madeUp(); 
} 

在ActionScript 3,我做出的Javascript调用使用:

ExternalInterface.call('javascriptFunction'); 

如果在Javascript中,有一个错误或阻塞调用,整个浏览器将冻结。我无法在Firefox中使用Firebug进行调试,因为通过回调进行的操作也会使浏览器崩溃。我如何去调试呢?

function javascriptFunction() { 
    alert('called from AS3'); 
    // OR 
    nonExistent.madeUp(); 
} 

您好!希望这个增加的信息将有助于保持这个问题活着:)。我正在使用Flash多媒体专业版8的Actionscript 2,并且我也遇到了Firefox的这个崩溃错误。我进口的flash.external.ExternalInterface,并且这两个功能我用的都是

//confirmation dialog 
     function confirmationDialog(mesg:String) { 
      return ExternalInterface.call("confirm", mesg); 
     } 
    //alert dialog 
     function alertDialog(mesg) { 
      return ExternalInterface.call("alert", mesg); 
     } 

我的代码调用每个函数总是看起来是这样的..

//if i need an alert to continue on the page 
if (abc == ''){ 
    alertDialog("Message Here"); 
    return; 
} 
//if the user has the option of continuing or returning 
if (abc2 == 'hello') { 
    var response = confirmationDialog("New Message Here"); 
    if (colorChoise == false){ 
     return; 
    }else{ 
    //do nothing and continue forward 
    } 
} 

我与惠普的桌面上Windows 7,Firefox 5.0,IE9和Chrome 12.0.742.122。任何一次警报呼叫都会随机导致Firefox冻结......实际上它通常会发生在一堆,它会连续冻结几次(显然每次都重新启动Firefox),然后停止几个小时并保持正常。它还没有崩溃的IE9或Chrome,但我还没有测试过它与Chrome广泛。使用Firefox控制台并没有帮助,因为Firefox只是一起崩溃。如果有人能够说明这一点,那会很棒!

回答

0

您是否在其他浏览器中尝试过使用像chrome或safari这样的调试功能?如果它们不像Firefox一样崩溃,这可能会让你的问题更清楚。

你也可以尝试另一个版本的Firefox,也许是在虚拟机上安装的旧版本也许......也许这不会崩溃。

你也可以尝试其他版本的闪光灯,看看是否修复它。

一般来说,在多个浏览器和多个版本的闪存上测试代码将使您和您的网站用户受益。

在许多版本中,许多插件版本都安装在一堆小型虚拟机中,您可以在需要时测试运行代码,或者在这样的情况下运行代码,这是很好的做法:)

如果这些都没有帮助,忘记逐步通过,只是console.log从一切可能发生的事情,看看最后出现在浏览器崩溃之前 - 它应该至少给你一个暗示,出错了,如果没有,实际上是什么让它崩溃;)

2

我刚刚遇到这个错误,而且它似乎是Firefox本身的错误。它可能会在下一个补丁版本中得到补救。请咨询Firefox Bug 648935

我会遵循Martin的建议,在IE9中,您可以使用F12调出“Developer Toolbox”来访问控制台,就像Firebug一样。