0

由于我不知道的原因,每次一行包含时,萤火虫都会不断停止new ActiveXObject('ShockwaveFlash.ShockwaveFlash'),即使被包围try...catch(但控制台中没有显示错误)

我无法“禁用”它,因为每次我更改某些内容时,创建的偏移量都会使其无用。

如果您想重现,请参阅该代码。

function getFlashVersion(){
 // ie
 try {
  try {
   // avoid fp6 minor version lookup issues
   // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
   var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
   try { axo.AllowScriptAccess = 'always'; }
   catch(e) { return '6,0,0'; }
  } catch(e) {}
  return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
  // other browsers
 } catch(e) {
  try {
   if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
    return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
   }
  } catch(e) {}
 }
 return '0,0,0';
}
var flash_version = getFlashVersion();

自从几个萤火虫版本以来,我收到了这个错误,如果这很重要,目前在 1.12.4 上运行

编辑:我截屏以更好地解释问题。

ActiveXObject 未定义,您可以在面板的选项卡菜单中禁用/启用中断通知。

ActiveXObject is not defined 
You can disable/enable break notifications in panel's tab menu.

“复制”按钮将复制带有行号的错误消息。“禁用”按钮将禁用该行(无论其内容如何)。因此,如果我在该行之前添加或删除一行,“禁用点”会有所不同。

另外,如上所述,控制台中没有显示错误(有一些关于“分配给未声明的变量”的警告,但它们与这些中断无关)

4

1 回答 1

0

您需要单击 Console 面板中的Break On All Errors按钮 ( 中断所有错误按钮)以停用停止对 JavaScript 错误执行的功能。

编辑:Firebug 中有一个相关的问题,它导致了这种行为。目前(在 1.12.4 之前的版本中)选项Track Throw/Catch不起作用,即 Firebug 总是会因错误而中断,即使它们被 try/catch 块包围。这将在 Firebug切换到新的调试器 API后立即修复。这是计划在下一个主要版本中发布的

此外,还有一个增强请求,可以在脚本发生更改的情况下更正持久断点的行号。

在修复Track Throw/Catch选项的行为之前,您必须如上所述禁用Break On All ErrorsActiveXObject() ,在调用的行号发生更改时手动移动禁用的断点,或者继续执行脚本。

塞巴斯蒂安

于 2013-11-12T12:21:27.833 回答