当文本具有特殊字符时,offsetWidth 计算不正确

offsetWidth not calculated properly when text has a special character

我正在尝试为我的场景找到文本宽度。 这是我的代码(简单示例)

var text = "Country <textinbrackets> and some following text";
var textObj = document.createElement('text');
$(textObj).attr({ 'id': 'measureTex'});
document.body.appendChild(textObj); 
textObj.innerHTML = text;
alert("Text Width:" + textObj.offsetWidth + " " + "Text Height:" + textObj.offsetHeight);

当我在我的文本中使用标签时 (<>) 它没有被考虑 () 所以我不能找到文本的确切宽度。 文本的实际宽度为 323,但返回为 212.. 如何找到确切的宽度..

样本Link:http://jsfiddle.net/W4Km8/7047/

如何解决?

那是因为 <textinbrackets> 已呈现为 html 元素。如果您检查文本,您会看到 <textinbrackets> 作为 html 元素。

只需将“<”替换为

&lt;

和“>”与

&gt;

所以,你的文字看起来像

var text = "Country &lt;textinbrackets&gt; and some following text";

如果您不想更改文本,请使用它。

textObj.innerText = text;