tohokuaikiのチラシの裏

技術的ネタとか。

createTextNode(string)したら中のstringテキストがエスケープされて困った件

こんな感じ

var dom = document.createElement('div');
var txt = document.createTextNode("¢");
dom.appendChild(txt);
console.log(dom.innerHTML);

だと、コンソールに¢ って出てきます。これは困る。

var dom = document.createElement('div');
dom.innerHTML = '&#162';
console.log(dom.innerHTML);

ってしないといけない。

http://www.softel.co.jp/blogs/tech/archives/2298
によると、UnicodeエスケープシーケンスにしてやるとcreateTextNodeでも問題ないっていうことだけど、うーん、この・・・面倒やな。