プロが教えるわが家の防犯対策術!

JavaScriptで指定サイトへの接続可否を判断する方法を探しています

指定のサイト(たとえばヤフーwww.yahoo.co.jp)に接続出来るかどうかをチェックし、OKの場合は処理A、NGの場合(サーバーエラーなど)は処理Bとさせたいのです

みなさんの場合どのようにされていらっしゃいますか?

A 回答 (3件)

 サーバーダウンなどによって、『必ずあるはずの画像ファイルが見つからない』といった状態の場合であれば、JavaScript は『その画像ファイルが読み込めたかどうか』という情報を持っていますので、それによってサーバーダウンを検知することができます。



 その場合、

<A HREF="xxxxx" onClick="if(document.images["IMG1"].complete==true){return true;}else{return false;}"><IMG SRC="xxxxx" NAME="IMG1"></A>

 というタグによって、リンク先へのジャンプを制限したりできます。
 return false; の部分に alert('ジャンプできません') といったコマンドを付け加えたりすることもできます。

 ただしこの方法だと、回線速度の低下によって読み込みが遅れていてもジャンプできないので、厳密にはサーバーダウンが検知できているわけではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます

画像ファイルで制御する方法はありますよね


整理させて下さい^

指定のURL(ファイル)がロード出来た・出来ないを判断出来るのは、やはり画像だけなのでしょうか?

JavaScriptでの判断です

あ、環境記述遅くなりました Win IE6.0

お礼日時:2004/06/05 21:39

 相手が物理的に存在するかどうか(引越しなどをなされていないか)のチェックは、JavaScript だけではできません。


 物理的なコネクションを必要とするため、セキュリティの関係でそういう機能は載ってないんです。
 Perl を使えばできますが……。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!
なるほど、サイトの存在可否はムリなのですね。。

ちなみにサーバーダウン(もしくは回線が重い等で一定時間遅延でもダウンと見なす)などを検知させることは可能ですか?

<IMG>で使われる onerror = "処理B"のようなカタチをイメージしてみました

たとえば、<IFRAME>でヤフーURLをロードするとき、接続失敗の時は違うサイトをロードさせるというようなことは出来ができそうな気がしました。

でも、<IFRAME>だと onerror = "処理B"がうまく使えなかったです。

お礼日時:2004/06/05 02:00

ブラウザのアドレス欄に直接URLを入力されたらそれを制限することはできないですし、


リンク先毎にボタンを作って、ボタンの表示・非表示を制御するような構想でしょうか?
それとも、「接続できるかどうかのチェック」というのは、ポリシーではなくて、実際にページが存在するかどうかをチェックしたい、という意味でしょうか?
その動作をするときのトリガーは何になりますか?
例えば、テキストボックスにURLを入力して、「確認」ボタンをクリックしたら、チェック処理が動いて
「接続できます」という表示がされるとかでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます!

提示頂いた中では、以下が近いかもしれません。

>例えば、テキストボックスにURLを入力して、「確認」ボタンをクリックしたら、チェック処理が動いて「接続できます」という表示がされる

<IFRAME>でヤフーURLをロードさせ、接続失敗(サイトがない、回線ダウン、あるいは、サイトが重くてレスポンス遅いのも含める)の時は違うサイト(例えばグーグル)をロードさせるというようなことができないかと思いました。


<IMG>で使われる onerror = "処理B"のようなイメージです

<IFRAME>だと onerror = "処理B"がうまく使えなかったです。

お礼日時:2004/06/05 02:07

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