IEの ruby 要素の中の rb要素 は無視されてるのか・・・。
javascriptのreplaceについて
http://oshiete.goo.ne.jp/qa/6388384.html
コードを書いてみた。(どうせ正規表現で置換えするのは無理があると判断)
またしても IEは・・・・。
<!DOCTYPE html> <title></title> <style type="text/css"> </style> <div id="hoge"> <p> <ruby> 漢<rt>かん</rt> 字<rt>じ</rt> </ruby> </p> <p> <ruby> 漢<rp>(</rp><rt>かん</rt><rp>)</rp> 字<rp>(</rp><rt>じ</rt><rp>)</rp> </ruby> </p> <p> <ruby> <rb>亜米利加</rb> <rp>(</rp> <rt>アメリカ</rt> <rp>)</rp> </ruby> </p> </div> <script> //@cc_on function replaceRubyTag (node, mode) { var doc = node.ownerDocument; var rubys = node.getElementsByTagName ('ruby'); var ruby; var span; var cnt; var node; var child; var text; while (ruby = rubys[0]) { if (mode) text = ruby./*@if (1) innerText @else@*/ textContent /*@end@*/; else { cnt = 0; text = ''; child = ruby.childNodes; while (node = child[cnt++]) { if (3 === node.nodeType) text += node.nodeValue; if ('RB' === node.nodeName) { text += node./*@if (1) innerText @else@*/ textContent /*@end@*/; alert(node.hasChildNodes()); } } } span = doc.createElement ('span'); span.appendChild (doc.createTextNode (text)); ruby.parentNode.replaceChild (span, ruby); } } replaceRubyTag (document.getElementById ('hoge')); </script>