人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptについて質問です。

自分のサイトが http://www.hogehoge.jp/ だった場合に、以下のscriptを自分のサイトの全ページに埋め込んでおくとします。

------------------------------------------

if(document.referrer.indexOf("hogehoge.jp") == -1){

??????

}

-------------------------------------------

このようにif文を使って、www.hogehoge.jp 外からの最初のアクセスにだけscriptを走らせたいのですが、なぜかhogehogeサイト内を移動中にもscriptが走ってしまいます。


どうしたら希望通りに動くでしょうか?

●質問者: petshop
●カテゴリ:インターネット ウェブ制作
✍キーワード:.jp JavaScript SCRIPT WWW アクセス
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● llusall
●27ポイント

リファラはセキュリティソフトにより送信されないことがあります。


例えば、

Norton Internet SecurityやNorton Personal Firewall を利用している場合、デフォルトではRefererを送信しないように設定されているようです。

参照元 (リファラ) が遮断され、Web サイトが正しく表示されない

セキュリティソフトをオフにしてみてはどうでしょうか?


その他の方法としてですが、クッキーを使用してみてはいかがでしょうか?

クッキーを遮断していたりしたら不可ですが、リファラよりはマシではないかと思います。

以下が参考になると思われます。

MottoJavaScript クッキーを使ったアクセス制限

※「サンプル」とか「解説」を押すと、詳細が表示されるようです。

◎質問者からの返答

すいません、説明が足りなかったのですが、ちょっと違います。

今やりたい事は、外部から来た場合はscriptを走らせてリファラをクッキーに保存、内部いどうじには何もしない、という事です。

リファラを見て外部から来たのか、内部の移動なのかを見ているつもりなのですが、内部移動時にもリファラをクッキーに保存してしまって困っています。


2 ● kn1967
●27ポイント

1で回答いただいている事が正解だと思いますが、、、、

if文の前に confirm でも入れて クライアントがどんなリファラを返してきているのかを確認してみてください。

http://www.htmq.com/js/frame_confirm.shtml


3 ● wkbyshnbtk
●26ポイント

if(document.referrer.indexOf("hogehoge.jp") == -1){

}

これは、リファラにhogehoge.jpが含まれていない場合、にブロックが実行されるので、リファラが空の場合でも実行されてしまいます。

空の場合は実行しない処理を付け加えれば希望通りに動くのではないでしょうか?

if (document.referrer) {
 if(document.referrer.indexOf("hogehoge.jp") == -1){
 ....
 }
}

http://www.hogehoge.jp/dummy

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ