デスクトップから実行して公開 Web サイトから情報を取得する Web ページを作成しました。1)インターネット接続がない場合はアラートが表示されます 2)インターネット接続はあるが、何らかの理由で情報が正しく取得されなかった場合、ユーザーにアラートが表示されます。
インターネットに接続されていない場合、try and catch はテストで機能します。
2 番目のテストに xml.status コードを使用しています...ウェブサイトはアクティブであるが、取得された情報が台無しになっている場合....そのテスト条件は、希望どおりに機能していません。私は xml.open に偽のウェブサイトを与えようとしましたが、200-300 以外のステータス コードを期待していました。しかし、それは機能しませんでした...代わりに、catch ステートメントがアクティブ化されました。どうしてこれなの?そして、これを書くより良い方法はありますか?
また、余談ですが、「」を返しました。これを使用する呼び出し変数は、null または未定義にすることができないためです。 variable = getInfo(); n.setAttribute("プレースホルダー", 変数);
function getInfo() {
var xml = null;
xml = new XMLHttpRequest();
try {
xml.open("get", "http://example.asp", false);
xml.send(null);
if ((xml.status >= 200 && xml.status <= 300) || xml.status == 304) {
var hi = xml.responseText;
hi = hi.replace(/(\r\n|\n|\r)/gm, "");
var what1 = /winning_number_sm.*?ul/
var what2 = /\d+/g
hi = what1.exec(hi);
var temp;
for (i = 0; i < 6; i++) {
if (null !== (temp = what2.exec(hi))) {
numbers[i] = temp;
}
}
return numbers;
} else {
alert("Error Connecting to Website! You will have to eneter informatin by hand");
return "";
}
} catch (e) {
alert("No Internet Connection! You will have to enter information by hand");
return "";
}
}