我正在编写一个单元测试,它使用 getComputedTextLength() 并在除 IE 之外的所有浏览器中通过测试(我使用的是 IE10)。
有任何想法吗?
这是我得到的错误:Unexpected call to method or property access.
我正在编写一个单元测试,它使用 getComputedTextLength() 并在除 IE 之外的所有浏览器中通过测试(我使用的是 IE10)。
有任何想法吗?
这是我得到的错误:Unexpected call to method or property access.
您可以回退到调用 getBBox() 并查看 IE10 结果的宽度字段。它不完全一样,但我猜总比没有好。
当元素不在可见 DOM 中时会发生这种情况。您可以事先进行检查以避免使用 try/catch。
if(!document.body.contains(self.node())) return;
在我有限的调查中,当实际元素不可见时,似乎 IE11(所以我假设 IE10)会引发此错误。为了解决这个问题,我做了
var a;
try{
a=textElement_.getComputedTextLength();
}catch(e){
a=textElement_.childNodes[0].length*8; //I used 8 as a width, but you should experiment
}
我希望这有帮助。一旦元素可见,它似乎可以正常使用 getComputedTextLength 。
如果您在 iframe 中的 SVG 中调用“el.getSubStringLength()”。然后你刷新这个 iframe,IE 也会抱怨这个,但是刷新整个页面就可以了。
我猜这是因为文本元素已经在 DOM 中,并且这些更新工作者之间存在错误。