DHTML Diver Help

Information

リンクチェック(カスタマイズ版)

リンク切れの確認のみでなく、内容の変更が行われていないか確認したい事があるかと思います。

そういった場合は、リンク先の特定の文字列を拾い一覧する様にカスタマイズすると便利です。

次のスクリプトは、同期版を元にリンク先のタイトルを一覧する様にカスタマイズした例です。

//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>";
//add
    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;
        objTgt[numIx].cells[2].innerText=xmlHttp.status+" "+xmlHttp.statustext
//add get title
        xmlHttp.responseText.match(/<title>(.*)<\/title>/i);
        objTgt[numIx].cells[3].innerText=RegExp.$1;
    }catch(e){
        objTgt[numIx].cells[2].innerText=e.message;
    };
};

と、たった3行のソースの追加により、タイトル情報の取得が行えました。

responseTextには、対象のページのHTMLソースが入ってきますので、調査対象のHTMLソースの特徴が分かっていれば、さらに有用な情報を取得できる様にカスタマイズできるでしょう。

私の場合は、出力された結果をExcelへ貼り付けて分析する事により作業効率を、さらに上げています。

Sponsor