1つだけ過去を変えられるとしたら?

こんにちは。
店のHPを作っています。
2つあるうちの一つに簡単な入場規制をかけようと、
「あなたは~ですか?」のポップアップ画面をつける事にしました。
知人のHP作成の仕事をしている人にJavaScriptを書いてもらって
設置して見たのですが,どうも上手く動作しないのです。
そのHPのトップ画面は2つのフレームに分割してあるのですが,
最初に間違えて「index.htm」につけるべきJavaScriptを
その2つに分割されているフレームのひとつの方につけてしまったのですが、
そのときは動いたのです。
でもそうすると,その分割されたフレームの右側だけ変わってしまい
それはいかんということで「index.htm」につけたのですが、
すると動作しなくなってしまったのです。
なのでタグは間違っていないはずなのですが,
なにがおかしいのでしょう?
トップページでそういう選択のポップアップ画面を出すなら
「index.htm」にJavaScriptをつければ良いはずですよね?
それを作ってくれた知人も「どうしてかわからない」と言ってて。
わかる方よろしくお願いします。

A 回答 (4件)

こんな感じではどうでしょうか?



[index.html]
 <HTML><HEAD><SCRIPT language="JavaScript"><!--
 if (! window.confirm("よろしいですか?")) {
   location.replace("./end.html");
 }
 //--></SCRIPT></HEAD>
 <FRAMESET COLS="20%,*">
   <!-- この辺は任意の構成で -->
   <FRAME SRC="a.html" NAME="a">
   <FRAME SRC="b.html" NAME="b">
 </FRAMESET>
 </HTML>

[end.html]
 <HTML>
 <BODY>
 またどうぞ
 </BODY>
 </HTML>

index.htmlのヘッダ部分が読まれると確認ウィンドウを開き、「いいえ」を選択するとend.htmlを読み直します。

この回答への補足

せっかく教えていただいたのに,上手くできません,,,
なにがいけないんでしょう…

JavaScriptが上手く作動しない原因で,
プログラム間違い以外にはありませんよね?
んー,もうちょっと頑張って見ます。

補足日時:2001/07/22 14:10
    • good
    • 0

 No.1で書いたHTML2つ(両方ともそのままでOKです)に、適当に書いたa.htmlとb.htmlを用意し、全てデスクトップに置いてindex.htmlを開けば目的の動作をすると思うのですが。

。。

> 上手くできません
 とありますが、もう1度上記の作業&操作を行って、どのように上手くいかないのか、なるべく細かく正確に書いてもらえますでしょうか?

> JavaScriptが上手く作動しない原因で,
> プログラム間違い以外にはありませんよね?
 知人に作ってもらったというスクリプトが
> 分割されているフレームのひとつの方につけてしまったのですが、そのときは動いたのです。
ということを考えると、プログラム間違い以外では考えにくいと思うのですが、一応使っているブラウザとバージョン及びOSも教えてもらえますか?

 それからもう1点注意として、私がNo.1で書いたHTMLソースは、コピペして使わないでください。ソースを表示上見やすくするために、全角スペースを使用不可の場所に使っているため、エラーなどが出る場合があります。

この回答への補足

今やってみたけどやはりそのままちゃんと画面が出てしまいました。

いまは、先ず大元のフォルダの中に,いくつか又フォルダがありそこに入ってる
ページと,フォルダには無いっていないページがありまして,
「index.htm」と,そのトップに使われているフレーム2つも同じ階層に
おいてあります。
で、そこのindex.htmにJavaScriptをたして,それをアップするという作業をしました。
一番最初はこの時にindex.htmにJavaScriptを付けずに
そのフレームの片方にJavaScriptを付けてしましました。
そのときはちゃんと動いたのです。
で、index.htmにつけなおすと動かなくなった。と。
普通にすぐトップページが開いてしますのです。

今は最初に書いてもらったのを手で打ちなおして,
同じ階層において(フレームはあるのを使いました)やってみると
やはり普通に開いてしまいます。

Windows98で、IEを使ってます。
IEのヴァージョンは何処を見ていいのかわからないのであれですが,
最初に入ってたときそのままです。
なにか基本的なところで間違えてるのでしょうか?

補足日時:2001/07/23 13:58
    • good
    • 0

フレームに分割されている画面の、


index.html に付けた、ということは、
フレーム設定のhtmlファイルに付けた、ということなのでしょうか?

だとしたら、動かないのは当然だと思います。


解決法は色々ありますが、

そのサイト全てのコンテンツに入場制限をかけるのなら、
フレームではないページをindex.htmlにして、
パスワードが一致していた場合に、
フレームのページに飛ばしてはいかがでしょうか。


P.S
こういう、「プログラムが動きません」という質問の場合、
動かないプログラムのサンプルを書いた方が
的確な答えを得られますよ。
    • good
    • 0

> フレーム設定のhtmlファイルに付けた、ということなのでしょうか?


> だとしたら、動かないのは当然だと思います。
 これはなぜでしょう?>ducklingさん

 gooの無料HPを作って、そこに各HTMLをアップしましたので、参考URLからご確認ください。
 各フレームが表示される前に確認ダイアログが開き、OKを選ぶと各フレームが、キャンセルを選ぶとend.htmlが表示されます。
(IE5.0 / NN4.7 確認済み)

 もしこれが上記通りに表示されないとなると、JavaScriptの設定がおかしいのかもしれません。ツール>インターネットオプション>セキュリティ>レベルのカスタマイズ>スクリプトあたりの設定を確認してみて下さい。
(1度動いているということなので、問題はないと思うのですが)

 もしちゃんと表示されたなら、ソースを表示して内容を確認してみてください。

参考URL:http://users.goo.ne.jp/leaz/frametopjs/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!