|
Informationリンクチェック(同期版)ブラウズ中の画面上の、リンク一覧を作成し別ウィンドウに表示します。 さらに、作成された各リンクへXMLHTTPリクエストを行い結果を表示します。 //links check [sync]
var objTgt=document.links;
var html="";
html+="<TABLE border='1'>";
for (var numIx=0;objTgt.length>numIx;numIx++){
html+="<TR>";
html+="<TD>"+numIx+"</TD>";
html+="<TD>"+objTgt[numIx].innerHTML+"</TD>";
html+="<TD></TD>";
html+="<TD><a href='"+objTgt[numIx]+"'target='_blank'>"+objTgt[numIx]+"</a></TD>";
html+="</TR>";
}
html+="</TABLE>";
var win = window.open();
win.document.open();
win.document.write(html);
win.document.close();
var objTgt = win.document.body.getElementsByTagName("TABLE")[0].rows;
for (var numIx=0;objTgt.length>numIx;numIx++){
try{
var strHref = objTgt[numIx].getElementsByTagName("A")[0].href;
var numPnt = strHref.lastIndexOf("#");
if (numPnt >= 0)strHref = strHref.substring(0,numPnt);
var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlHttp.open("GET",strHref,false);
xmlHttp.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
xmlHttp.send();
objTgt[numIx].cells[2].innerText=xmlHttp.status+" "+xmlHttp.statustext;
}catch(e){
objTgt[numIx].cells[2].innerText=e.message;
};
};
リクエスト結果の意味よく見かけるHTTPステータスは、以下の2種類だと思います。
※詳細は、MSDN status Property (IXMLHTTPRequest)や、Webサーバー側の設定を調べて見てください。 セキュリティの設定IEのセキュリティ設定により、他ドメインへのアクセスに失敗する事があります。 一概に何が原因とは、言えないのですが、「書き込みできません。」と表示される場合は、以下の設定を行うとアクセスできるようになる事を確認しています。(IE5.5,IE6) IEメニューバーの[ツール]-[インターネットオプション]-[セキュリティ]の、該当ゾーンの[レベルのカスタマイズ]により、[ドメイン間でのデータソースのアクセス]を有効にする |
Sponsor |