読者です 読者をやめる 読者になる 読者になる

jQueryでCSSをappendしようとしたらクラッシュしてハマった

jQuery JavaScript エラー

jQueryを利用してブックマークレットを作ってたのだけど、
Firefoxで上手くいって「さ、念のためIEもやるかぁ」みたいに確認してみたらクラッシュ。


何でエラー出てるのかわからず、あれ?あれ?ってなった。
で、確認していったらlinkタグをheadにappendする時にクラッシュすることが判明。


試してみたら以下の通り。

// linkだけ追加 OK
$('<link/>')
    .appendTo('head');

// relを追加 OK
$('<link/>')
    .attr('rel', 'stylesheet')
    .appendTo('head');

// typeを追加 OK
$('<link/>')
    .attr('rel', 'stylesheet')
    .attr('type', 'text/css')
    .appendTo('head');

// 完全な形で追加 crash!!
$('<link/>')
    .attr('rel', 'stylesheet')
    .attr('type', 'text/css')
    .attr('href', 'http://d.hatena.ne.jp/lesamoureuses/path_to_css.css')
    .appendTo('head');

hrefを追加したらcrashしたわけではなく、CSSのlinkタグの完全な形でheadタグにappendするとクラッシュするっぽい。
# 順番を変えて試したら最後に追加したところでエラーになった


で、結局文字列でlinkタグを作り、headの中に入れることにしました。

// 文字列からlink作る OK
$('<link rel="stylesheet" type="text/css" href="http://d.hatena.ne.jp/lesamoureuses/path_to_css.css" />')
    .appendTo('head');


何でだろうね。よくわからん。
IEはリードオンリーなのかしら。
jQueryのバージョンは1.2.6でした。