今まで Safari では出来ないと思っていました
var element = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(element); var sheet = element.sheet; alert(sheet); // null
こんな感じで null になってしまうのです。。。
しかし!
さっき出来る方法が分かりました!
var element = document.createElement('style'); element.appendChild(document.createTextNode('')); // この行を追加 document.getElementsByTagName('head')[0].appendChild(element); var sheet = element.sheet; alert(sheet); // [object CSSStyleSheet]
このように TextNode を追加することで sheet オブジェクトが取得できるようになりました。
あー。どうして今まで試さなかったんだろう!
でも、分かってスッキリ!