2008.04.10

Safari の innerHTML と sytle 要素

Greasemonkey スクリプトを手直ししていたら、Safari でちょっと嵌ってしまった。動作しなくなったんだけどエラーがでないもんだから、どこが駄目なのかすぐにつかめない。色々コメントアウトして下記の部分だとわかったんだけど、何が駄目なのかが今一わからない。

var style = document.createElement("style");
style.innerHTML = 'span.sbm img {border:none;margin:0 2px;vertical-align:baseline;}';

ADC で調べてみてもそれらしき文書が出てこないので、google 先生にお伺いすると…

style 要素の内容には innerHTML でアクセスできません。

[赤福プラス + Safari patch > パッチの内容]

な、なんだってー!!とりあえず innerHTML でなく appendChild と createTextNode を使えば問題なく動作した次第。

style.appendChild(document.createTextNode('span.sbm img {border:none;margin:0 2px;vertical-align:baseline;}'));

Bug 15648 がそれっぽいけど、だとしたら Safari 3 からバグなのかなぁ。

関連記事

この記事へのトラックバックURL
http://wildlifesanctuary.blog38.fc2.com/tb.php/164-42f4893b
この記事へのトラックバック
この記事へのコメント