3

getComputedTextLength() を使用する単体テストを作成しており、IE を除くすべてのブラウザーでテスト パスを使用しています (IE10 を使用しています)。

何か案は?

これは私が得るエラーです:Unexpected call to method or property access.

4

4 に答える 4

3

これは、要素が可視 DOM にない場合に発生します。try/catch を使用する必要がないように、事前にチェックを行うことができます。

if(!document.body.contains(self.node())) return;

于 2015-11-12T13:32:15.813 に答える
1

私の限られた調査では、実際の要素が表示されていない場合、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 を使用するようです。

于 2014-09-01T12:54:04.257 に答える
0

iframe 内の SVG で「el.getSubStringLength()」を呼び出した場合。次に、この iframe を更新すると、IE もこれについて文句を言いますが、ページ全体を更新すると問題なく動作します。

これは、テキスト要素が既に DOM にあり、これらの更新ワーカーの間にバグがあるためだと思います。

于 2016-05-27T07:57:23.823 に答える