0

server not foundスタンドアロンのXULアプリで、例外をキャッチしたいと思います。onStateChangeの場合に状態を確認してみましたnsIWebProgressListenerが、うまくいかないようです。私のonStateChangeイベントの実装は以下のとおりです。有効な値を返すかどうSTATE_STARTかを想定しているので、ページの読み込みに問題があり、ユーザーにエラーメッセージが表示されます。STATE_STOP

onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
  const STATE_START = Components.interfaces.nsIWebProgressListener.STATE_START;
  const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP; 

  if(aFlag & STATE_START) {
      document.getElementById("progressBar").hidden = false;
  }
  if(aFlag & STATE_STOP) {
      setTimeout(function() { document.getElementById("progressBar").hidden = true; }, 2000);     
  }

  if(aFlag & (!STATE_START | !STATE_STOP)) {
    alert("Your connection seems to be down. Please confirm with your system admin.");    
  }
  return 0;

}、

誰かが私が間違っていることについて親切にアドバイスしてもらえますか?前もって感謝します。

4

1 に答える 1

2

接続エラーがあったonStateChangeかどうかを示すパラメータはaStatusです。たとえば、次のように使用できますComponents.isSuccessCode

if ((aFlag & STATE_STOP) && !Components.isSuccessCode(aStatus))
{
  alert("Your connection seems to be down. Please confirm with your system admin.");
}

「サーバーが見つかりません」エラーに対応するものと比較することもできaStatusます。ただし、接続がダウンしている場合は、 (接続に失敗した)、(プロキシが見つからない)、(オフライン状態で接続しようとした) などComponents.results.NS_ERROR_UNKNOWN_HOST、他の多くのエラーが発生する可能性があります。ネットワーク エラー コードの完全なリストはnsNetError.hにあります。NS_ERROR_CONNECTION_REFUSEDNS_ERROR_UNKNOWN_PROXY_HOSTNS_ERROR_OFFLINE

于 2012-05-14T06:33:18.447 に答える