• 締切済み

簡易的な閲覧制限を行うためにJava scriptを組んでいます

簡易的な閲覧制限を行うためにJava scriptを組んでいます ・特定のリンク元以外は、別のページに飛ばす ・a.htmlのリンクからとんできた際、b.htmlでキーワードを入力させる  以上の2つを行うため、以下のjava scriptを組んで、b,htmlにくみこみました。 が、うまくいきません。なぜでしょうか? ------------------------------ var keyword = "123456" function checkKey(){var key = prompt("Please enter the Password.","") if(keyword != key) {alert('error!'); history.go(-1)} else {void(0);} } checkKey() check = "http://www.xxx.co.jp"; url = "http://www.yyy.co.jp"; ref = top.document.referrer; if (ref.indexOf(check) < 0) document.location = url; ------------------------------ また、check = "http://www.xxx.co.jp"; のアドレス部分は相対アドレスでも可能でしょうか?(たとえば、../aaa/bbb.html などに出来ますでしょうか?) また、check = "http://www.xxx.co.jp"; を複数指定することはできるのでしょうか?出来れば構文を教えていただきたいです。 稚拙な質問で恐縮ですが、どなたかご回答よろしくお願いいたします。

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

まともに動くように直す事は簡単ですが、意味ないですね。 だれに対して制限したいのかわかりませんが、 簡易的でも全然閲覧制限になっていません。 簡易的に制限するためには、 簡単なサーバサイドのプログラムとか.htaccessのbasic認証使った方が 効果有りです。javascriptであれこれ考えるより簡単です。

関連するQ&A

  • 特定のURLからの訪問者を入室禁止にしたい

    色々調べてみたのですがよく解らなくて質問させて頂きます。 要は、特定のサイトでリンクされて、そのリンクから来る閲覧者を、本来のページとは違うURLへとばしたいのです。(これでお解りいただけるかな?) 指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 if (ref.indexOf(check) < 0) // refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> と言ったScriptは見つけられたのですが、私が望んでいるのは、 /* 入室許可したくないリンク元URL又はURLの一部を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 入室許可したくないリンク元URLの場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 ???????????????? document.location = url; </script> と言ったScriptで、?????の部分をどう記述して良いのかが解りません。 よろしくお願いいたします。

  • 指定URL以外からのアクセスを拒否するJavaScriptとして

    指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer;// リンク元のURLを取得 if (ref.indexOf(check) < 0)// refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> とあり、試しているのですが、Google chrome4.1ではきちんと動作(指定のアドレスから移動してきちんと表示される、お気に入りから開くと転送される)するのに、Internet Explore8/Firefox3.5では動作しません(指定のアドレスから移動しても転送されてしまう)。 理由がわからないのでどなたか教えて頂けないでしょうか。 よろしくお願いいたします。

  • 複数の特定のURLからのみアクセスを許可

    複数の特定のURLからのみアクセスを許可し、それ以外の場合は、他のページへ飛ばすJavascriptを具体的に教えてくれませんか? 単数の場合は以下のようにすれば良いらいしいのですが、複数の場合灰は分かりません <script> check = "~a.html"; url = "~b.html"; ref = top.document.referrer; if (ref.indexOf(check) < 0) document.location = url; </script>

  • FireFoxでできて、IE7でできなかったJava

    htmlにアクセス時にパスワードを要求するように <Script language="JavaScript"> <!-- var keyword = "0123" function checkKey(){ var key = prompt("パスワ-ドを入れてください。","") if(keyword != key) history.go(-1) } checkKey() //--> </Script> と、<head>~<head>の間に入れてアクセスしてみたところ IE7でアクセスしたところ何も変化がおきず、試しにFireFoxでアクセスしたらパスワード要求ウィンドウが出ました。 IE7の場合だと何か違う点があるのでしょうか。

  • 複数のURLからアクセス制限したい場合

    ある特定のURLからのアクセスを、どこかのページに飛ばすには、 <Script Language="JavaScript"> <!-- reff=document.referrer; if(reff.indexOf('相手のURL')!=-1){ location.replace('飛ばす先のURL') } //--> </Script> ですが、相手のURLのところを「複数」指定したい場合には、 どのように書き加えれば良いのでしょうか? 試行錯誤したものの、上手くいかず困っています。 ご意見頂けましたら幸いです。

  • 直リンクを弾くJavaScriptについて

    こんにちは!初めての質問なのでちょっと緊張していますが、宜しくお願い致します。 今私は直リンクを弾くスクリプトを設置中です。 下記のものがそうなんですが…。 <script language="JavaScript"> check = "http://yahoo.co.jp/"; url = "http://oshiete1.goo.ne.jp/"; ref = top.document.referrer; // if (ref.indexOf(check) < 0) // document.location = url; </script> この設定だと、yahooの以下デイレクトリのURL(http://yahoo.co.jp/○○.html)からのアクセスでも閲覧許可になり、gooには飛びませんよね? なのに、見に来てくれた人の中でページが見れないっていう方がいるので困っています。 自分でもテストしてみましたが、「お気に入り」にすると見れなくて、ちゃんとサイト内のリンクからは見れましたが・・・。 一体何がいけないのでしょうか? ちなみに見れないと言ってる人は会員さんで、リンク文字をクリックして出たダイアログにパスワードを入れて、上のスクリプトがあるページにいくといった感じの道順です。詳しい事は連絡が取れないのでわからないのですが。 それともその人が実はお気に入りから入ったのでは…などとも思っています。 自分では上手くいくので本当に謎です。 どうか判る方、宜しくお願いします!!もう藁にも縋る思いです。 http://suepon.com/ 使っているのはここのスクリプトです。参考までに。

  • フレームページでアクセス制限したい場合

    ある特定のURLからのアクセスを、どこかのページに飛ばすには、 <Script Language="JavaScript"> <!-- reff=document.referrer; if(reff.indexOf('相手のURL')!=-1){ location.replace('飛ばす先のURL') } //--> </Script> なのですが、 フレームページの<body>と</body>の間に設置したところ、 飛ばすことが出来ず、普通に表示されてしまいます。 この場合どうすれば、いいのでしょうか? ご意見頂けましたら幸いです。

  • 外部からのアクセスを特定ページに飛ばす方法

    <script type="text/JavaScript"> var link = document.referrer; // var paths = link.split("/"); var path = paths[paths.length - 1]; // if(path != "test.html"){ // test.html以外からのアクセスは以下のアドレスに飛ばす location.href = "http://www.○○○.com"; } </script> ========================= 上記のスクリプトを書き入れればよいことは分かりましたが if(path != "test.html") ←この部分をパスではなく、URLで指定する書き方を教えてください。 それと、URLで指定する書き方で複数指定することはできますか? 例えば、ifの部分に、www.○○○.com/test.htmlとwww.○○○.com/sample.htmlの二つのURLを指定する方法を教えてください。 説明下手ですみません。よろしくお願い致します。

  • JavaScriptを追加したい

    こんにちは。 こちら(ttp://f22.aaa.livedoor.jp/~sncspt/)のサイトさんの配布している「SNC THREADBBS 3」を使用したいのですが、その中に ***** <script type="text/javascript"> <!-- var url = "http://サイトアドレス"; if((document.referrer == "") || (document.referrer.match(url) == null)) { window.location.href = url; } // --> </script> ***** もしくは、 ***** <LINK rel="stylesheet" TYPE="text/css" HREF="javascript.js"> ***** のように入れたいのですが、どこにどう入れたらいいか分かりません。 そのサイトさんで聞けばいいのかもしれませんが、少し急いでいますのでどなたかアドバイスをお願いしたいです。 よろしくお願いします。

  • アクセス制限したのですが

    ある掲示板からのリンクされた場合、特定のページ(http://www●.ne.jp/~▲/refuse.htm) に飛ばさせようとしたのですが、うまくいきません。 <BODY> <Script Language="JavaScript"> <!-- reff=document.referrer; if(reff.indexOf('jbbs.shitaraba.com')!=-1){ window.alert('申し訳ございません トップページからお入りください'); location.replace('http://www●.ne.jp/~▲/refuse.htm') } //--> </Script> フレーム対応なのですが、index.htm に貼るのでしょうか。トップページに貼るのでしょうか?

専門家に質問してみよう