ウェブページを作っていて、ページを読み込んだ時に同意文を表示して、同意していただいた場合だけ、ページを閲覧できるようにしたく色々なページを見ながらJavascriptを調整しているのですが、どうしても読み込んだときにプログラムが動作しないので困っています。


サンプル:http://www.body-piercing.jp/js.html

※サンプルはinputボタンで動作するように書いています。
 これをonloadでページを読み込んだ際に動作するようにしたいです。


お分かりの方は是非お教えください。
よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2009/02/25 18:21:33
  • 終了:2009/02/26 17:29:04

回答(3件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/02/25 18:46:54

ポイント33pt

「ページを閲覧できるように」という要求要件を、「同意したら、あらかじめ指定したページに遷移する」という意味に解釈しました。

であれば、d_Confirm 関数を下記のようにしたらどうでしょう。

function d_confirm () {
    dialog.confirm("××××××××××××××××××<br>××××××××××××××××××<br>同意いただけますか?<br><br>", "", 
        function (bool) {
            if ( bool ) {
                alert("同意します。");
                location.href="http://www.hatena.ne.jp/";
            } else {
                location.href="http://hogehoge.com/";
            }
        }
    );
}

(余談:hogehoge.com が実在するとは‥‥)

id:mixnuts

説明不足ですみません。

予め指定したページへ移動するのではなく

http://www.body-piercing.jp/js.html

へアクセスした時点で、同意文の表示(同意する か 同意しない かのダイアルログを表示)

そして、同意するをクリックすると、そのページの本文(http://www.body-piercing.jp/js.html)を表示するようにしたいです。

HTMLの構造で、scriptはページの上部に配置し、javaを読み込んだ時点で、ページの読み込みを一時停止、同意するをクリックすれば、残りのhtmlを読み込むみたいな感じにしたいです。


お分かりでしたら、よろしくお願いいたします

2009/02/25 19:22:06
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/02/25 22:07:33

ポイント33pt

HTMLの構造で、scriptはページの上部に配置し、javaを読み込んだ時点で、ページの読み込みを一時停止、同意するをクリックすれば、残りのhtmlを読み込むみたいな感じにしたいです。

http通信の性質上、これはできません。1つのファイル(例:http://www.body-piercing.jp/js.html)を転送途中で止めたり、途中から転送を行うということはできません。

JavaScript でやるなら、本文を別ファイルにして、Ajax で呼び出すしかありません。


※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。

id:mixnuts

回答ありがとうございます。

ではファイルの転送を止めるのは別として、サンプル(http://www.body-piercing.jp/js.html)のjavascriptをonloadで動かすことはできますでしょうか?

document.body.onload=d_confirm();

など、色々と試してみたのですが、onloadでは動かなかったもので。

よろしくお願いいたします。

2009/02/26 09:44:55
id:esecua No.3

esecua回答回数510ベストアンサー獲得回数102009/02/26 08:11:43

ポイント33pt

できればサーバサイドで確認した方が確実だと思います。

JSはあくまでもユーザーサイドですので、ユーザー側で同意せずとも閲覧することが出来てしまいます。

サーバサイドではそうはいきませんので確実に行えます。

以下PHPで

if($_POST['yes'])

{

echo "同意しましたので、どうぞ";

}else{

echo'

同意しないと見せません!

<form action="" method="post">

<input type="submit" name="yes" value="同意">

</form>

';

id:mixnuts

回答ありがとうございます。

厳密にはサーバサイドがいいのですが、今回は簡易でいいのでサンプルの同意文(javascript)を読み込み時に動作できればいいと考えております。

上でも記載させていただきましたが、サンプル(http:/www.body-piercing.jp/js.html)のjavascriptをonloadで動かすことはできますでしょうか?

document.body.onload=d_confirm();

など、色々と試してみたのですが、onloadでは動かなかったもので。

よろしくお願いいたします。

2009/02/26 09:51:50
  • id:Mars
    質問者さんには関係ない部分ですが
    #1さんの余談。
    >hogehoge.com が実在するとは‥
    この手の例示用には example.com というのがおすすめらしいです。
    http://allabout.co.jp/internet/hpcreate/closeup/CU20060522A/index.htm

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません