広告

posted by fanblog
「ここにブログの名前を入れます」は更新を終了しました。記事はすべて新ブログ「Big Bang」に移転済みです。記事のタイトルをクリックすると新ブログの該当記事に移動します。そちらでお楽しみください。

DOMでIEのstyleタグやscriptタグに書込む法

Internet ExplorerのDOM操作で下のように、styleタグやscriptタグにtextNode
appendChildしようとするとエラーになります。そういう時の対処法です。

var css=document.createElement('style');
css.setAttribute('type','text/css');

var str=document.createTextNode('div.entryInfo{clear:both}'); css.appendChild(str);
var head=document.getElementsByTagName('head'); head[0].appendChild(css);

IE(インターネットエクスプローラ)で、styleタグに書き込むには、次のようにやるようです。

var css=document.createElement('style');
css.setAttribute('type','text/css');
css.styleSheet.cssText='div.entryInfo{clear:both}'
var head=document.getElementsByTagName('head'); head[0].appendChild(css);

IE、その他のブラウザ両対応のコードはこうなります。

var css=document.createElement('style');
css.setAttribute('type','text/css');

var str='div.entryInfo{clear:both}';

if(css.styleSheet){ //IE
	css.styleSheet.cssText=str;
}else{ //その他のブラウザ
	var text=document.createTextNode(str);
	css.appendChild(text);
}

var head=document.getElementsByTagName('head');
head[0].appendChild(css);

scriptタグの場合はこうやります。

var stag=document.createElement('script');
stag.setAttribute('type','text/javascript');
stag.text='alert("hoge");';
var head=document.getElementsByTagName('head'); head[0].appendChild(stag);

新ブログ「Big Bang」で続きを読む