document.write()を外部JSファイルに記述すると、IE8で表示されない

このQ&Aのポイント
  • HTMLからとあるJavaScriptファイルを読み込み、そのJavaScriptファイルでdocument.write()を使ってHTML側にテーブルを記述しようとしています。しかし、IE8ではセキュリティの警告が出てテーブルが表示されません。
  • Google ChromeやFirefoxでは正常にテーブルが表示されますが、IE8ではセキュリティの警告(※最下部参照)が出た後、それを許可してもテーブルは表示されません。
  • 何が問題なのでしょうか?Google Adsenseなどはこの方法で広告を表示していますが、IE8で正常に表示されますし、セキュリティの警告も出ません。
回答を見る
  • ベストアンサー

document.write()を外部JSファイルに記述すると、IE8で表示されない

HTMLからとあるJavaScriptファイルを読み込み、 そのJavaScriptファイルでdocument.write() を使ってHTML側にテーブルを記述しようとしています。 しかし、Google ChromeやFirefoxでは 正常にテーブルが表示されますが、 IE8ではセキュリティの警告(※最下部参照)が出た後、 それを許可してもテーブルは表示されません。 何が問題なのでしょうか? Google Adsenseなどはこの方法で広告を表示していますが IE8で正常に表示されますし、セキュリティの警告も出ません。 [test.js] document.write('<table border="1"><tr><td>test</td></tr></table>'); [test.html] <html> <head> </head> <body> <script type="text/javascript" src="test.js" /> </body> </html> ※IE8(英語版)のセキュリティ警告は以下です。 "To help protect your security, Internet Explorer has restricted this webpage from running scripts or ActiveX controls that could access your computer. Click here for options..." この後"Allow"を選んでもJavaScriptで 書かれるはずのテーブルは表示されません。

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

  • ベストアンサー
回答No.1

http://bakera.jp/yomoyama/shorttag#section2-4 これはHTMLには適用されないから <script type="text/javascript" src="test.js" /> ではなく <script type="text/javascript" src="test.js"></script> と書かないといけない、とみなされているかな。思いつくのは。 #title要素は省略出来ない。 #名前空間宣言が存在しないとXHTMLにはならない

stoutontap
質問者

お礼

ありがとうございます。<script />の書き方を<script></script>の書き方に変更することで、テーブルの表示がされるようになりました。 また、セキュリティの警告はローカルのHTMLではなくサーバー上にアップしたものを表示すると出てこないことがわかりました。 これで全て解決しました。ありがとうございます。

関連するQ&A

  • 外部ファイルを読み込めない

    初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。

  • ScriptがTABLEタグの中に表示されません。

    下記の様にScriptを使ってTABLEタグの中に表示させようと思ったのですが、test2.jsの「あれ?」がTABLEタグ欄に表示されません。 何方かご教授してもらえませんか? ↓↓↓↓<HTML File>↓↓↓↓ <HTML><BODY> <script src="./test1.js"></script> </BODY></HTML> ↓↓↓↓<test1.js File>↓↓↓↓ document.open(); document.write("<TABLE border=1><TBODY><TR><TD>1</TD><TD>おや?<script src=\"./test2.js\"></script></TD></TR><TR><TD>1</TD><TD>1</TD></TR></TBODY></TABLE>"); document.close(); ↓↓↓↓<test2.js File>↓↓↓↓ document.open(); document.write("あれ?"); document.close();

  • 外部ファイルを利用したい

    現在、Webの勉強を始めたのですが、自分でいろいろ作成していてうまくいかないので、教えて下さい。 htmlファイルが幾つかあるのですが、全てのページに同じテーブルタグを使用するので、JavaScriptの外部ファイルで書き出してそれぞれを各htmlファイルで呼び出そうと思っていますが、うまくいきません。 ★jsファイル/xx.js★ <SCRIPT language="JavaScript"><!-- document write("<table border='1'"); document write("<tr><td><img src='xx.gif'></td></tr>"); document write("</table>"); --> ★htmlファイルでの呼び出し★ <html> <head><title>外部ファイル呼び出し</title></head> <body><script language="JavaScript" src="xx.js"></script> </body></html> かなり素人なので変な書き方をしていると思いますが、ご指導お願いします。

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

  • HTMLページに外部テキストファイルを取り込むには?

    HTMLのページに、一部だけ外部ファイルのデータを取り込もうとしています。 <HTML> <BODY> <P><TABLE WIDTH="450" > <TR> <TD><IMG SRC="picture1.jpg"></TD> <TD >ここにJavascriptで自由更新文(1)を入れる</TD> </TR> </TABLE><BR> <TABLE WIDTH="450"> <TR> <TD><IMG SRC="picture2" ></TD> <TD>ここにJavascriptで自由更新文(2)を入れる</TD> </TR> </TABLE> </BODY> </HTML> 上のような、写真と説明文がセットになったテーブルがいくつか配置されているページがあるとします。 その説明文を、HTMLを見たこともない人物に自由に更新してもらわねばなりません。 そこで、例えば「1つめの写真の説明文は1.dat、2つめの写真の説明文は2.dat …と、単純にテキストだけを打った.datとか.txtファイルをサーバにアップロードしてもらい、htmlページはJavascriptでその.datファイルをテーブル内に読み込むようにして使いたいのですが、そのJavascriptはどんな書き方をすればよいでしょうか? <script type="text/javascript" src="1.js"></script>といったように読み込む場合、1.jsの内容は単純なテキストでなく document.write("これは例文です。"); // End といったように、ソースになっていなければダメですよね? これでは間違って「"」等を消されたらファイルが壊れてしまいます。このため、こういう内容でなく、「document.write("」や「");」や「// End 」も無い、単純なテキストだけを外部ファイルにすることはできないでしょうか?

  • IEにおけるinnerHTMLの記述ミス?

    ┌───┬───┐ │1行目 │     │ ├───┤     │ │2行目 │ボタン │ ├───┤     │ │3行目 │     │ └───┴───┘ というテーブルで、ボタンを押すごとに2行目が表示、非表示と切り替わるように、下のようなソースを書きました。 IE以外ではうまく行くのですが、IEだと 一回目の押下ではうまく行くのですが、その後が動きません。 ちなみに 最初の押下でエラーの警告がでています。 innerHTMLの記述を消したらそれは無くなりました、、、。 IE以外のブラウザでは上手く行くのですが、 IEではどこがダメなのでしょうか。 基本的なことで申し訳ありませんが、よろしくお願いします。 -------------------------------------------------------------- <script type="text/javascript"> function del() { document.getElementById('row2').style.display="none"; document.getElementById('row1').innerHTML= '<td>1行目</td>'+ '<td rowspan="2"><input type="button" value="2行目を表示" onclick="add()" /></td>' } function add() { userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.indexOf("msie") > -1) { document.getElementById('row2').style.display="display"; } else { document.getElementById('row2').style.display="table-row"; } document.getElementById('row1').innerHTML= '<td>1行目</td>'+ '<td rowspan="3"><input type="button" value="2行目を非表示" onclick="del()" /></td>' } </script> <style type="text/css"> table { border-collapse:collapse; } td { border:1px solid #ccc; } </style> <table> <tr id="row1"> <td>1行目</td> <td rowspan="3"><input type="button" value="2行目を非表示" onclick="del()" /></td> </tr> <tr id="row2"> <td>2行目</td> </tr> <tr> <td>3行目</td> </tr> </table>

  • 外部ファイルの記述の問題なのかエラーが出ます

    IE6を使っています。 次のように[a.js]を呼び出したのですが、 オブジェクトがありませんとエラーが出ます。 そのエラーの次に[test.html]にあるalertの内容は表示されます。 どこが間違っているのでしょうか? [a.js] var a = document.body.clientWidth; [test.html] <html> <head> <title>test</title> <script type="text/javascript" src="a.js"></script> </head> <body> <script type="text/javascript"><!-- alert(document.body.clientWidth); --></script> </body> </html>

  • 外部参照で画像出したいのだが・・。

    タイトルの通りですが、外部ファイルを参照して画像(テーブル等も)表示したいのですがうまくいきません。 <html lang="ja"> <head> </head> <body> <script type="text/javascript" src="js/1_1.js"> </script> </body> </html> そしてこちらが、”js/1_1.js”ファイルです。 document.write("<TABLE BORDER>"); document.write("<TR>"); document.write("<TD><img src="bbs_on.gif"></TD>"); document.write("</TR>"); document.write("</TABLE>"); 画像でなく文字ならばうまくいくのですが、結果は何も表示されません。何がおかしいんでしょうか??※パスはまちがいがありません。

  • document.writeの問題?

    document.writeでタグを書き入れる時に、よく、下記のように面倒な 書き方で行を変えていますが、一行でタグをすべて書いたのではなんか問題があるのでしょうか? ------------------------------------- document.write("<table>") document.write("<tr>") document.write("<td>表の内容</td>") document.write("</tr>") document.write("</table>") ------------------------------------- この一行で終わりだと思うのですが・・・? document.write("<table><tr><td>表の内容</td></tr></table>")

  • IE8で外部jsファイルが読み込めない

    htmlでjavascriptを使用しようとhtmlファイルとjsファイルを同階層に置き、下記のように外部jsファイルを読み込んでいます。 <script type="text/javascript" src="./com.js"></script> しかし、IE8でそのhtmlを開くと 「メッセージ: 文字が正しくありません。ライン: 1文字: 1コード: 0 URI: file:///C:/Users/PCUser/Desktop/test/common/js/com.js」 というエラーが発生してjavascriptが読み込めません。 秀丸でsrc="./com.js"をクリックするとソースが表示されるのでパスは間違えていないと思います。 また、簡単なボタン押下時にalertを表示するscriptを作成して確認したところ、FIRE FOXでは正常に動きましたが、IE8ではやはり動きませんでした。 文字コードはhtml、javascript共にshift-jisです。 他にjavascriptを読み込めない原因は何かありますでしょうか? よろしくお願いいたします。

専門家に質問してみよう