電子書籍の厳選無料作品が豊富!

詳しくコピーするので、長文になることをお許し下さい。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML LANG="ja">
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/
html;charset=SHIFT_JIS">
<META HTTP-EQUIV="content-style-type" CONTENT="
text/css">
<META NAME="robots" CONTENT="NONE">
<META NAME="content-language" CONTENT="ja">
<META NAME="build" CONTENT="2004.05.25">
<TITLE>初めに…</TITLE>
</HEAD>
<BODY>

<script type="text/javascript">
<!--
refurl = document.referrer
if( refurl != "http://www.zzz/~yyy/xxx.html" ) {
alert("ここは入り口ではありません");
history.back();
}
//-->
</script>

<noscript>
 Javascriptが無効です。Javascriptを有効にして<br>
やり直して下さい。<br>
 解らなければ、mosomoso8まで。<br>
<meta http-equiv="refresh" content="http://www.zzz/~xxx/uuu.html"></noscript>

123456789

</body>
</html>
※uuu、xxx、yyy、zzzは、仮の文字です。

↑こんなソースなのですが、『http://www.zzz/~yyy/xxx.html』からリンクしても、アラートが出てしまい123456789の文字が見れません。
このソースの間違いがわかる方、どうか教えて下さい。
かれこれ、もう1ヶ月も悩んでいます。

最初、『http://www.zzz/~yyy/xxx.html』からURLを直接入力してジャンプするのが原因かと思い、その後テストの為上記のページからリンクを張ってみたのですが、それでもアラート表示が出て、弾かれます。

どなたか、どうかお助け下さい。

A 回答 (3件)

 まず疑うべきは、document.referrer の中身ですね。


 本当にここに、あなたの求める値が入っているのかどうかが問題です。

 この問題を解決するためには、

  refurl = document.referrer
  alert(refurl)
  if( refurl != .....

 というふうにプログラムを改造してみてください。
 もし正しい値が入っているように見えたら、余計なスペースなどが入ってしまっていないかもチェックしてください。

 そして問題が全て解決したら、alert(refurl) を削除するわけです。
 直接の回答になってなくて申し訳ないですが、プログラムの考え方自体には問題がないように見えたので……。

 それから老婆心ながら、history.back(); は集客率を落とすだけなんでやめた方がいいですよ。
 アラートも何も表示せず、ただ黙ってトップページにジャンプさせた方が親切だと思います。

 それと JavaScript は行末の ; はなくても動きますが、ブラウザによってエラーが出る可能性があるのでできればつけた方がいいですよ。

 あと、すでにやってらっしゃるかもしれませんが、このプログラムは別ファイルにしてアチコチのHTMLファイルで使いまわせるようにすれば便利ですよ。
    • good
    • 0
この回答へのお礼

alert(refurl)
このを使っての確認の方法は全然知らなかったので、本当にありがとうございました。
とても助かりました。
正しく、余計なスペースが入っていたのでした……
お忙しい時間を割いて頂いたのに、こんなしょうもない原因で、とても恥ずかしいです。
本当にありがとうございました。助かりました。

お礼日時:2004/06/29 15:44

今、手元に資料がないのですが、document.referrerは


IE5ではセキュリティ上、取得できなかった記憶が
あります。IE6でどうなったかはちょっとわかりません。

過去の質問に同様の質問・解答がありましたので
参考URLに記述しておきました。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=343265
    • good
    • 0
この回答へのお礼

教えて頂いた参考URL、直接の修正には利用できませんでしたが、内容事態はとても参考になりました。お忙しい時間を割いてわざわざ私の質問に手を貸して頂いて、本当にありがとうございました。

お礼日時:2004/06/29 15:40

えーと、


refurl = document.referrer
この行末に;がありませんが、コピペ時のミスなんでしょうか?
もし、本当にソースでも;が無いなら、この行がエラーでrefurlが空になっているだけという落ちなのでは?
    • good
    • 0
この回答へのお礼

コピペ時のミスでは無く、本当に抜けていました……
すみません、ご指摘の通りでした。
更に、余計なスペースまで入ってて、ふたを開ければ
しょうも無いミス。
お忙しい時間を割いて頂いたのに、本当にすみません。
そして、ありがとうございました。

お礼日時:2004/06/29 15:46

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