在firebug中,如何忽略新的ActiveXObject()中断

时间:2013-11-07 09:31:30

标签: javascript firebug

因为我不知道,每当一行包含new ActiveXObject('ShockwaveFlash.ShockwaveFlash')时,firebug就会不断停止,即使被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();

我从一些firebug版本中得到了这个错误,如果重要的话,目前在1.12.4上运行

编辑:我会截取屏幕截图以更好地解释问题。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您需要点击“控制台”面板中的Break On All Errors button (Break On All Errors button)停用执行JavaScript错误。

修改: Firebug中存在一个相关问题,导致此行为。当前(版本高达1.12.4)选项Track Throw/Catch isn't working,即Firebug将始终打破错误,即使它们被try / catch块包围。一旦Firebug switched to a new debugger API,这将被修复。这是planned for the next major release

此外,还有enhancement request用于在脚本发生更改时启用更正持久断点的行号。

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

塞巴斯蒂安