由于SVGAnimatedString导致Chrome和TypeError

Yar*_*den 2 javascript debugging macos svg google-chrome

当我点击SVG元素时,我在Chrome上收到错误,但在Firefox上收不到错误.

如果我使用Chrome的调试器,它会在bubble_compiled.js(Google的文件)中出现'Uncaught TypeError:undefined is not function'.

我知道潜在的问题源于'.className返回一个SVGAnimatedString(没有indexOf方法),正确的做法是使用.classNam e.baseVal但是这个错误不再是我的代码的一部分而是它的一部分谷歌的代码.

这是一个基本的例子:

<!DOCTYPE html>
<html>
<head>
    <script>
       function err() { alert('err'); }
    </script>
</head>
<body>
   <svg style="width:200px;height:200px; background-color: #00B7FF" onerror="err()"></svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这意味着我无法调试涉及与svg元素交互的代码,因为Chrome调试器在mousedown上打破了此错误.

有趣的是,直到两天前(5月14日)我才发现这个问题并且我已经开发了这样的代码好几年了.我在Mac上使用Chrome 42,我尝试使用Chrome 40.0.2214.91(64位),但现在我得到了同样的错误(是的,我禁用Chrome自动更新:-)我没有看到问题在Firefox(带或不带调试器).

另一个有趣的观察是,如果我从文件而不是(file://)加载上述html而不是通过服务器,则不会发生错误.

我试图通过向SVGAnimatedString(或其原型)添加indexOf()来规避它,但这是本机代码,它不起作用.

将onmousedown添加到svg元素没有帮助,因为异常发生在我的函数被调用之前.

我现在需要的是告诉Chrome不要破坏此错误的方法.

Yar*_*den 11

事实证明这个问题是由Google的Translate扩展引起的.禁用它可以解决问题.