[JavaScript] JavaScriptからスタイルを追加する際の注意点
JavaScript から style要素 を createElement してスタイル操作する際の注意点です。
(※ document.styleSheets を操作する方法もありますが、今回は単純に head要素 に追加する例です)
前述のことをする場合は次のようなコードになりますが、そのままでは IE8 でエラーが出ます。
addCssRule : function ( selector, declarations ) {
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.innerHTML += selector + '{' + declarations + '}';
document.getElementsByTagName('head')[0].appendChild(style);
}
IE8 でも動作するようにするためには大凡次のようなコードになります。
(※結構はしょってるのでコピペで使用するのはおすすめしません)
addCssRule : function ( selector, declarations ) {
if ( navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Trident/4.') != -1 ) {
document.styleSheets[0].cssText += selector + '{' + declarations + '}';
} else {
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.innerHTML += selector + '{' + declarations + '}';
document.getElementsByTagName('head')[0].appendChild(style);
}
}
今更感が否めないエントリですが、滞るよりはいいので^^;
トラックバックURL
http://mashimonator.weblike.jp/mt/mt-tb.cgi/238
コメント投稿フォーム