• 締切済み

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

JavaScriptで指定サイトへの接続可否を判断する方法を探しています 指定のサイト(たとえばヤフーwww.yahoo.co.jp)に接続出来るかどうかをチェックし、OKの場合は処理A、NGの場合(サーバーエラーなど)は処理Bとさせたいのです みなさんの場合どのようにされていらっしゃいますか?

みんなの回答

noname#25358
noname#25358
回答No.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('ジャンプできません') といったコマンドを付け加えたりすることもできます。  ただしこの方法だと、回線速度の低下によって読み込みが遅れていてもジャンプできないので、厳密にはサーバーダウンが検知できているわけではありません。

niceT
質問者

お礼

ありがとうございます 画像ファイルで制御する方法はありますよね 整理させて下さい^ 指定のURL(ファイル)がロード出来た・出来ないを判断出来るのは、やはり画像だけなのでしょうか? JavaScriptでの判断です あ、環境記述遅くなりました Win IE6.0

すると、全ての回答が全文表示されます。
noname#25358
noname#25358
回答No.2

 相手が物理的に存在するかどうか(引越しなどをなされていないか)のチェックは、JavaScript だけではできません。  物理的なコネクションを必要とするため、セキュリティの関係でそういう機能は載ってないんです。  Perl を使えばできますが……。

niceT
質問者

お礼

アドバイスありがとうございます! なるほど、サイトの存在可否はムリなのですね。。 ちなみにサーバーダウン(もしくは回線が重い等で一定時間遅延でもダウンと見なす)などを検知させることは可能ですか? <IMG>で使われる onerror = "処理B"のようなカタチをイメージしてみました たとえば、<IFRAME>でヤフーURLをロードするとき、接続失敗の時は違うサイトをロードさせるというようなことは出来ができそうな気がしました。 でも、<IFRAME>だと onerror = "処理B"がうまく使えなかったです。

すると、全ての回答が全文表示されます。
  • dayowl
  • ベストアンサー率56% (84/148)
回答No.1

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

niceT
質問者

お礼

ありがとうございます! 提示頂いた中では、以下が近いかもしれません。 >例えば、テキストボックスにURLを入力して、「確認」ボタンをクリックしたら、チェック処理が動いて「接続できます」という表示がされる <IFRAME>でヤフーURLをロードさせ、接続失敗(サイトがない、回線ダウン、あるいは、サイトが重くてレスポンス遅いのも含める)の時は違うサイト(例えばグーグル)をロードさせるというようなことができないかと思いました。 <IMG>で使われる onerror = "処理B"のようなイメージです <IFRAME>だと onerror = "処理B"がうまく使えなかったです。

すると、全ての回答が全文表示されます。

関連するQ&A