web上のjavascript入門ページなどを参照しながら学習中ですが詰まってしまいました。よろしくお願いします。
1. topページにセレクトボックスを設置。
2. セレクトされた内容に応じて、現在のウインドウを書き換えた後topページと同じセレクトボックスを設置。
3. 2を繰り返す。
このような動作をさせたいのですが、現在のウインドウを書き換えることは出来るのですがセレクトボックスを設置しようとするとエラーになります。
script_test01.htmlの内容
--------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<script type='text/javascript' src='script_test01.js'>
</script>
<br>
<form name='form_0'>
<select onchange='rewrite()' name='sel_0'>
<option>A or B</option>
<option>A</option>
<option>B</option>
</select>
</body>
</html>
--------------------------------------------------
script_test01.jsの内容
--------------------------------------------------
function rewrite() {
var sel_in =document.form_0.sel_0.options.selectedIndex;
var sel_name = document.form_0.sel_0.options[sel_in].text;
document.write('<html>\n');
document.write('<head>\n');
document.write('<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">\n');
document.write("<script type='text/javascript' src='script_test01.js'>\n");
document.write("</script>\n");
document.write('</head>\n');
document.write('<body>\n');
document.write(sel_in,' : ',sel_name,'<br>\n');
/*↓この部分がうまくいかない
document.write('<br>\n');
document.write('<form name='form_0'>\n');
document.write('<select onchange='rewrite()' name='sel_0'>\n');
document.write('<option>A or B</option>\n');
document.write('<option>A</option>\n');
document.write('<option>B</option>\n');
document.write('</select>\n');
/*↑この部分がうまくいかない
document.write('</body>\n');
document.write('</html>\n');
}
--------------------------------------------------
script_test01.jsのコメントアウトをはずすとエラーになります。
script_test01.js内でさらに自分自身を記述している部分辺りなど、なにかおかしなことをやっていのではという自覚はありますが、よくわかりません。
あわせて質問ですが、.htmlと.jsはEUCで作成しcharsetもEUC-JPを指定しています。
topページをブラウザのエンコードで確認すると当然「日本語[EUC]」となっていますが、セレクトボックス選択後書き換えられたページを確認すると、「Unicode」なっていますがなぜでしょうか?「日本語[EUC]」に出来ないでしょうか?
No.1ベストアンサー
- 回答日時:
document.write('<form name='form_0'>\n');
document.write('<select onchange='rewrite()' name='sel_0'>\n');
この2行。’の中に’が入っている。
\’のようにエスケープするか、”を使いましょう。
後、document.writeの前後のopen/closeを行いましょう。
特にcloseが無い為、永遠に読み続けるのが鬱陶しいです。
文字コードに関しては、JavaScriptは内部処理でunicodeを使用している為。
documentのopen後に、「document.charset='EUC-JP';」のような指定をすることで解消できます。
この回答への補足
ありがとうございます。
>\’のようにエスケープするか、”を使いましょう。
ああっ!こんなことわかってたはずなのに・・・
文字コードの方も試してみましたがバッチリです。
書き換えた方のセレクトボックスがうまく動作しませんが、もう少し考えてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
document.clear()の使い方について
-
ホームページに日付を自動更新...
-
window.openでタイトル名の指定
-
java カレンダーの日付指定で...
-
document.open()の意味とは
-
自動ポップアップで画像を表示...
-
引数を渡さずに呼び出し元の変...
-
ジャバスクリプトで空白(スペー...
-
今日の月と日付の1週間後や3日...
-
C#OpenCv V4にのエラーに関する...
-
同じIDで定義した要素の配列を...
-
JavaScript window.openで開く...
-
google apps scriptの終了のさせ方
-
Click回数を数え、規定された回...
-
FireFoxのjavascriptで自動でキ...
-
Boolean型配列中のTrueの有無を...
-
Vb.netのグローバル変数の宣言...
-
idを使わずにonclickで自身の要...
-
<a>タグのテキストを取得
-
javascript 変数名の連結をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openでタイトル名の指定
-
ホームページに日付を自動更新...
-
テキストボックスに入力された...
-
for文のiを使ってリンク先のア...
-
○歳△ヶ月と×日を計算してくれる...
-
引数を渡さずに呼び出し元の変...
-
なぜ、ジャバスクリプトが表示...
-
innerHTMLにて設定した情報を再...
-
前のページに戻るとページトッ...
-
更新でランダムでページ内のテ...
-
今日の月と日付の1週間後や3日...
-
「今日の日付けを画像で表示」...
-
java カレンダーの日付指定で...
-
文字列を点滅させたい
-
HTMLを記述しつつサブ窓(showM...
-
条件分岐(IF文)の簡素化
-
Java Scriptのメソッドについて
-
javascriptとphpの連携で疑問
-
現在の日付から、1ヶ月前にす...
-
この方法を教えてください。
おすすめ情報