初めての質問です。よろしかったらお答えください。
複数のインラインフレーム用ページが用意してあり、
テキストボックスに入力した番号によって
任意のページから10個のインラインフレームを順番に配置するようにしたいのです。
ここを参考に作ったのですがうまくいきません。
http://okwave.jp/qa4019868.html
<html>
<head>
<script language="javascript">
<!--
function init(){
var queries=location.search;
if(queries){
var q = queries.replace(/^\?/,'').split('=');
n = eval(q[1]);
}
alert(n);
}
window.onload= init;
// -->
</script>
</head>
<body>
<form action="index.htm" method="get">
<input name="number" type="text" value="">
<input type="submit">
</form>
<script language="javascript">
<!--
for(i=1 ; i<=10; i++)
{
document.write("<iframe src='"+n+".htm'>");
n++;
}
//-->
</script>
</body>
</html>
根本的な所から間違っているのでしょうか?
No.1ベストアンサー
- 回答日時:
よく読み取れませんが・・・
フォームで入力した数字(例えば10)とすると、インラインフレームに10.htm、11.htm・・・19.htmという連番のhtmファイルを表示したいということでしょうか?(どのようなことをしたいのか、いまいち実体がイメージできません)
いっぱいつっこみどころがあるのですが、とりあえず↑の想定があっているとして、以下の事柄を整理して、もう一度見直してみてください。
1)このファイルを表示した時(もちろんフォーム入力前)に、document.writeでiframeを表示しようとしていますが、表示するものがないはず。
2)formのactionがindexhtmとなっているが、それはこのファイルのことでしょうか?(自分自身を再読込みということか)
index.htmが別にある場合:location.searchの解釈、iframeの出力などはこのファイルには不要でindex.htmに必要なスクリプトです
再読込みの場合:最初の表示(未入力)と2回目以降の表示(iframeの表示)とを分けて制御する必要があるが、まったく考慮されていない。
3)iframeタグが閉じていないので、ブラウザで正しく認識されない。(IEの場合は適当に判断するみたいですが、これは例外的)
4)ついでながら、連番のhtmlを表示するにしても、何番から何番まで用意してあるのでしょうか。入力値をチェックするなりしないと『ファイルを開けません』の表示ばかりになる恐れがある。(本当に連番のファイルを表示するつもりなのでしょうか?)
ヒントとして・・・
ご提示のスクリプトは、document.writeを実行しようとした時にnの値が定まっていないので、動作がブラウザによって不定です。
『(1)初期値としてnを定義しておくこと(n=1;とか)と、(2)<iframe>タグを閉じること(</iframe>を入れる)』を修正すれば、とりあえず動作すると思われます。
でも、考えているものとは多分違う動作になるとは思いますが、そこを出発点にして確認しながら作っていってもいいかも。
いずれにしろ、やりたいことを一度整理した上で、どのように制御すればよいのかを考えてみることをお勧めします。
丁寧にありがとうございます。
私の説明不足でした。
顧客情報のようなものを連番(顧客ID)のhtmで自動生成しており、それをインラインフレームを並べることで一覧できるようにする事と検索窓に顧客IDを入力するとそのフレームを表示するようにしたかったのです。
テキストボックス内の数字を保持したまま自分自身(index.htm)を再読み込みして、
インラインフレームを生成するという感じなのですがなかなかうまくいきませんでした。
しかしlocation.searchを理解することでなぞが解けました。
試行錯誤の末自分の思い通りの動きになりました。ありがとうございました。
<head>内に書いたスクリプトの変数nと<body>内に書いた変数nは内容を共有できないのですね。
<html>
<head>
<title></title>
</head>
<body>
<form action="index.htm" method="get">
<input name="number" type="text" value="">
<input type="submit">
</form>
<script language="javascript">
<!--
var queries=location.search;
if(queries){
var q = queries.replace(/^\?/,'').split('=');
var n = eval(q[1]);
}
for(i=1 ; i<=10; i++)
{
document.write("<iframe src='"+n+".htm'></iframe>");
n++;
}
//-->
</script>
<iframe src='"+n+".htm'></iframe>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CGIフォーム一定時間過ぎる...
-
IEでiframe内のcookieを保持
-
<a href="#" …>の意味を教えて...
-
javascriptでalertの文字列をコ...
-
リンク移動先のURLを取得
-
別ファイルのfunctionの読み込み方
-
スマホ上で、左右スワイプで次...
-
インラインフレームで表示され...
-
jqueryでのkeydownイベント発生...
-
二つの関数を一つにまとめるこ...
-
ハイパーリンクに下線を表示す...
-
bodyにidをつける理由は何ですか?
-
ひとつの外部ファイルに複数の...
-
googleモバイルがiframeで表示...
-
外部jsファイルの変数に代入す...
-
条件分岐で、読み込む外部スク...
-
base64encodeでの文字化けについて
-
SCRIPT5007: 未定義または NULL...
-
リンクを選択すると現れる点線枠
-
ユーザーが更新ボタンを押さな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1から100までの平方根を表示す...
-
javascriptで変数を組み込みたい
-
document.getElementById
-
ランダム音声と正解・不正解の表示
-
JavaScriptの入れ子
-
IEでiframe内のcookieを保持
-
動的生成したscriptタグが実行...
-
¥マークの検索について
-
history.back スクリプトオフ...
-
外部jsからdocument.writeする...
-
javascriptでの大文字小文字の区別
-
CGIフォーム一定時間過ぎる...
-
明日の日にちを表示するときは
-
ブラウザのアドレス欄に
-
HPビルダーで『最終更新日時』...
-
ブログ上で複数のjavaスクリプ...
-
書いたクッキーを読み出してメ...
-
ホームページ内に直接書込がしたい
-
JSによるリンク先の値の取得
-
カウントダウンとカウントアッ...
おすすめ情報