document.lastChild.appendChild()のIE5.5対応

このQ&Aのポイント
  • 任意のHTMLファイルの<body>内に<script type="text/javascript" src="sample.js" charset="shift_jis"></script>と書いたとき、そのHTMLファイルのヘッダにsample.cssへのlinkを定義できるように
  • sample.js内に以下のコードを追加しましたが、IE5.5ではエラーが発生します。
  • IE5.5に対応する書き方があるのかどうか知りたいです。
回答を見る
  • ベストアンサー

document.lastChild.appendChild()のIE5.5対応

任意のHTMLファイルの<body>内に <script type="text/javascript" src="sample.js" charset="shift_jis"></script> と書いたとき、そのHTMLファイルのヘッダに sample.cssへのlinkを定義できるように --------- sample.js ----------- sample_css=document.createElement('link'); sample_css.rel='stylesheet'; sample_css.href='/sample.css'; sample_css.type='text/css'; document.lastChild.firstChild.appendChild(sample_css); … --------- sample.js ----------- と書いたのですが、IE5.5で、 document.lastChild.firstChild.appendChild(sample_css); の行がエラーとなってしまいます。 IE5.5に対応できる書き方はないものでしょうか。

noname#63992
noname#63992

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

古いIEの環境がないのであてずっぽになりますが・・・ sample_css=document.createElement('link'); sample_css.setAttribute('rel','stylesheet'); sample_css.setAttribute('href','/sample.css'); sample_css.setAttribute('type','text/css'); document.getElementsByTagName("head")[0].appendChild(sample_css); とかでどうでしょう?

noname#63992
質問者

お礼

ありがとうございました。IE5.5~7.0、FireFox、Opera、Safariとも全て動きました。

関連するQ&A

  • appendChildをしても表示されない

    javascriptでどうしてもわからなかったので質問させて下さい。 'http://weather.livedoor.com/plugin/common/forecast/13.js'というスクリプトを読み込んで表示させたいのですが、IEでは表示されません。firefoxでは正常に表示されます。 IEでも表示する方法はあるのでしょうか。何が悪いのでしょうか。教えてください。 以下のページで作成しています。 http://www.ajaxblogparts.com/blogparts/simple.html   <body> <script type="text/javascript"> url = 'http://weather.livedoor.com/plugin/common/forecast/13.js'; var script = document.createElement('script'); script.type = 'text/javascript'; script.charset = 'euc-jp'; script.src = url; document.body.appendChild(script); </script> </body>

  • CSSをあとから読み込みたい。

    「CSS読み込み」クリックで、追加CSSを読み込みたいのですが、 以下のやり方でIE6以外ではできたのですがIE6で動きません。 どなたかアドバイスいただけると幸いです。 ▼JS=============================================================== function roadcss(){ if(navigator.userAgent.indexOf("MSIE") > -1){ document.createStyleSheet('/answer.css'); } else { var tag=document.createElement('link'); tag.setAttribute("type","text/css"); tag.setAttribute("rel","stylesheet"); tag.setAttribute("href","/answer.css");​ document.getElementsByTagName('head')[0].appendChild(tag); } } ▼HTML============================================================= <a href="javascript:void(0)" onClick="roadcss()">CSS読み込み</a>

  • DOMで生成したタグにCSSが適用されない(IE)

    DOMでタグを生成した場合、IEではそのタグにCSSが適用されないのですが 何かいい解決法はないでしょうか。ちなみに試したHTMLは下記の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>test</title> </head> <body> <script type="text/javascript"><!-- A = document.createElement("div"); A.setAttribute("id", "A"); A.setAttribute("style", "color:red;"); document.body.appendChild(A); document.getElementById("A").appendChild(document.createTextNode("test")); --></script> </body> </html>

  • appendChildがieだとできない??

    こんにちは。DOMについては全く無知です。 このようなのを作ったところ、google chromeでは動いたものの、ieでは動きませんでした。 var iBody = $("hoge").contentWindow.document.getElementsByTagName("body")[0]; var newText = document.createElement("div"); newText.innerHTML = "aaa"; iBody.appendChild(newText); ※$("hoge")は、iframeタグを指しています いろいろ試したところ、ieだとフレーム内にアクセスすることができないみたいです。 どうすればいいのか、ご存知でしたらご教示願います。

  • IE対応 HTML5 こちらでよろしいでしょうか。

    IE対応 HTML5 こちらでよろしいでしょうか。。。 様々なサイトを見て ■ reset.cssは使わず normalize.css を使用。 ■ modernizr.jsではなく selectivizr.js を使用。 ■ cssの拡張に CSS3 PIE を 使用。 http://css3pie.com/ としております。 読み込ます順番が違うなどありますでしょうか。 併用するとエラーになるファイルはありますでしょうか。 よろしくお願いいたします。。。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="format-detection" content="telephone=no"> <meta name="robots" content="all"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <title></title> <meta name="description" content=""> <meta name="keywords" content=""> <link rel="stylesheet" href="css/normalize.min.css"> <link rel="stylesheet" href="css/main.css"><!-- 自分の記述するcss --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="js/plugins.js"></script> <script src="js/main.js"></script><!-- 自分の記述するjs --> <!--[if (gte IE 6)&(lte IE 8)]> <script src="js/selectivizr.js"></script> <![endif]--> <!--[if lt IE 9]> <script src="js/html5shiv.js"></script> <![endif]--> </head> <body> ~ </body> </html>

    • ベストアンサー
    • HTML
  • ModalBoxのIEでの表示について

    質問です。 javascriptの「ModalBox」についてなのですがModalBox内で指定したhtmlファイルがIE7では表示されません。Firefoxでは表示されるのですが・・・なぜでしょう? 一応javascriptは表示され上からウィンドウは表示されるのですが中身の内容がでてきません(Firefoxなら表示されます) ソースですが 表示するボタンがある側↓----------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>ModalBox サンプル</title> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" href="modalbox.css" type="text/css" media="all"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="lib/scriptaculous.js"></script> <script type="text/javascript" src="modalbox.js"></script> </head> <body> <h1>ModalBoxサンプル</h1> <a href="sample.html" title="Sample 1" onclick="Modalbox.show(this.href, this.title); return false;">ダイアログを表示</a> </body> </html> --------------------------- 表示されるhtml側↓ <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Sample</title> </head> <body> サンプル </body> </html> ----------------------------- となっています。 調べたところIE7にも対応しているとの事なのですが何故でしょうか?

  • IEでのjQuery の実装について

    教えてください。 現在、jQuery の jqplot を利用してグラフの表示を検討しております。 HTML(ブラウザ:IE,chrome)での表示は問題なく行われますが、 HTMLをASPファイル内に組み込んでページを表示させようとすると chromeでは問題なくグラフが表示されますが、IEではエラーが発生します。 IEでも動作するようにするためのアドバイスをお願いします。 以下、ロジックです。 <!-- jQuery グラフ表示部 ここから --> <script language="javascript" type="text/javascript" src="../jQuery/jquery-1.9.0.min.js"></script> <!--[if lt IE 9]> <script language="javascript" type="text/javascript" src="../jQuery/excanvas.min.js"></script> <![endif]--> <script language="javascript" type="text/javascript" src="../jQuery/jquery.jqplot.min.js"></script> <script language="javascript" type="text/javascript" src="../jQuery/jqplot.barRenderer.min.js"></script> <script language="javascript" type="text/javascript" src="../jQuery/jqplot.categoryAxisRenderer.min.js"></script> <link rel="stylesheet" type="text/css" href="../jQuery/jquery.jqplot.min.css" /> <script> jQuery( function() { jQuery . jqplot( 'jqPlot-sample', [ [ [ '4月', 65 ], [ '5月', 72 ], [ '6月', 74 ], [ '7月', 63 ], [ '8月', 85 ], [ '9月', 90 ] ] ], { animate: true, seriesDefaults: { renderer: jQuery . jqplot . BarRenderer, }, axes: { xaxis: { renderer: jQuery . jqplot . CategoryAxisRenderer, } } } ); } ); </script> <!-- jQueryグラフ表示部 ここまで --> html部分 <div id="jqPlot-sample" style="height: 300px; width: 300px;"></div>

  • IEだけjsファイルを読み込まない指定

    よろしくお願いいたします。 IEだけに適用させたくないjsファイルがあり、 HTMLファイルの<head></head>内に、下記のように記述してみたのですが、 <!--[if !IE]> <script type="text/javascript" src="aaa.js"></script> <![endif]--> IEだけでなく他のすべてのブラウザで適用されなくなってしまいました。 書き方が間違っているのでしょうか・・? ソースは下記のようになっています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="Description" content="あああ" /> <meta name="Keywords" content="あああ" /> <title>タイトル</title> <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon" /> <link href="import.css" rel="stylesheet" type="text/css" media="all" /> <link rel="stylesheet" href="print.css" type="text/css" media="print" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <!--[if !IE]> <script type="text/javascript" src="aaa.js"></script> <![endif]--> 以下略 また、こちらのページを参考に記述いたしました。 http://blog.playunderworld.com/web/ie-conditional-comment/ もし原因をご存知でしたらお教えいただけたらと思います。 どうぞよろしくお願いいたします。

  • jquery lightboxを設定しようとしていますが問題がでてます

    jquery lightboxを設定しようとしていますが問題がでてます.... functionの部分を htmlに直接表記すれば動く状態ですが、 functionの部分を外部に登録するとなぜか動かなくなってしまいます。 jquery.lightbox-0.5.min.jsというファイルにファンクションを書き足せばいいとの ことですが.. なにか 以下のHTMLソースに足らない部分がありますか? ご教授ねがいます。 <link href="css/top.css" rel="stylesheet" type="text/css"> <link href="css/print.css" rel="stylesheet" type="text/css" media="print"> <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script> <script type="text/javascript"> $(function() { $('.up_image a').lightBox({ overlayBgColor: '#FFF', overlayOpacity: 0.7, txtImage: '画像', txtOf: 'の' } ); }); </script> </head>

  • cssの振り分けについて

    下記のjavascriptの内容でわからないのでおしえてください。 if(cssFile){ if (document.getElementById && !opera5 && !opera6 && !(mac && ie5) && !icab){ var head = document.getElementsByTagName('HEAD').item(0); var newLink = document.createElement('LINK'); newLink.rel = "stylesheet"; newLink.type = "text/css"; newLink.href = cssFile; head.appendChild(newLink); }else{ document.open(); document.write('<link rel="stylesheet" href="' + cssFile + '" type="text/css">'); document.close(); } } よろしくお願いします。

専門家に質問してみよう