• ベストアンサー
  • 困ってます

javascriptの動作について

  • 質問No.6791654
  • 閲覧数127
  • ありがとう数1
  • 回答数1

お礼率 87% (7/8)

こんばんは。
直接アドレス指定などしてきたものについては、
トップページへ飛ばすことをしようと思ったのですが、
以下の記述だと、IE8では動作しましたが、GoogleCrome(11.0.696.77)、firefox(3.6.0)、safari
では動作しませんでした。(location.hrefがダメなんでしょうか?)

解決策・回避策などあれば教えてください。
よろしくお願いします。

<script language="JavaScript" type="text/JavaScript">
<!--
var url;
url = document.referrer;
if(url != 'http://xxxxxxxxx'/){
location.href('http://xxxxxxxxxxxxx');
}
// -->
</script>

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 71% (1047/1466)

他カテゴリのカテゴリマスター
とりあえずこんな感じOKでした。一応、Gecko、Webkit、Trident~で動作確認済みです。

━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━
<script type="text/JavaScript"><!--
window.onload = function(){

var my_url = 'http://example.com/'; //ここにTOPページを代入
var my_ref = document.referrer;

if( my_ref.indexOf(my_url) < 0 ){
window.location.href = my_url;
}

};
//--></script>
━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━

Chromeだと一瞬だけ、元ページが表示されます(笑)。他のブラウザの場合は、元ページも一切表示されずに、my_urlで指定されたページへ飛びます。

P.S.
まさかとは思いますが…。例文の「if(url != 'http://xxxxxxxxx'/){」はタイポですよね??
もしそれがそのままソースコードとして記述されてるのだとしたら、’で囲われた区切りがおかしいです。文末が「xxxx'/」ではなく、「xxxx/'」となるべきです。

まあ、それはそれとして。回答文の物は、少し色を着けてます。というか例文のままだと、普通にサイト内リンクとかの場合にも、直リンクと見なして飛ばされてしまうのでは??
お礼コメント
beachtable

お礼率 87% (7/8)

ありがとうございました!!

期待通りの動作が確認できました!

ただ、回答いただいた内容をHTML内に追加したら、動作しなかったので、
JSファイルにして、呼出す方法にしたら、うまくいきました。

また、確かに最初質問した内容だとサイト内リンクでNGでした。
文字列検索にしたほうが良いですね。参考になりました。

助かりました。ありがとうございます。
投稿日時:2011/06/08 00:10
関連するQ&A
ページ先頭へ