<HTML> <HEAD> <TITLE>link status check</TITLE> <SCRIPT> function fetchHTTPStatus (url) { if ((location.host == '') || (url.indexOf(location.host) == -1)) netscape.security.PrivilegeManager.enablePrivilege('UniversalConnect'); var urlObj = new java.net.URL (url); var host = urlObj.getHost(); var port = (urlObj.getPort() > 0) ? urlObj.getPort() : 80; var fileName = urlObj.getFile(); var sock = new java.net.Socket (host, port); dock = new java.io.DataOutputStream(sock.getOutputStream()); dock.writeBytes('HEAD ' + fileName + ' HTTP/1.0\r\n'); dock.writeBytes('\r\n'); var dis = new java.io.DataInputStream(sock.getInputStream()); line = dis.readLine(); // get just status message dis.close(); dock.close(); sock.close(); var statusObject = new StatusObject(line); return statusObject; } function StatusObject (statusLine) { var re = /(HTTP\/[\d\.]+) (\d\d\d) ?(.*)$/i; var match = re.exec(statusLine); this.protocol = match[1]; this.status = match[2]; this.message = match[3]; } function checkURLStatus (url) { if (document.getElementById && window.ActiveXObject) { var http = new ActiveXObject('Microsoft.XMLHTTP'); http.open('HEAD', url, false); http.send(); return http.status; } else if (document.layers && navigator.javaEnabled()) { return fetchHTTPStatus(url).status } else return null; } function checkLinks () { for (var l = 0; l < document.links.length; l++) { window.status = 'checking link ' + l; var link = document.links[l]; var status = checkURLStatus(link.href); if (status) { if (document.all) { if (status == 200) link.insertAdjacentHTML('afterEnd', '<SUP><SPAN STYLE="color: green;">' + status + '<\/SPAN></SUP>'); else link.insertAdjacentHTML('afterEnd', '<SUP><SPAN STYLE="color: red;">' + status + '<\/SPAN></SUP>'); } else if (document.layers) { link.ol = new Layer(20); link.ol.document.open(); if (status == 200) link.ol.document.write('<FONT COLOR="green">' + status + '<\/FONT>'); else link.ol.document.write('<FONT COLOR="red">' + status + '<\/FONT>'); link.ol.document.close(); link.onmouseover = showStatus; link.onmouseout = hideStatus; } } } window.status = ''; } function showStatus (evt) { evt.target.ol.left = evt.pageX; evt.target.ol.top = evt.pageY; evt.target.ol.visibility = 'show'; } function hideStatus (evt) { evt.target.ol.visibility = 'hide'; } </SCRIPT> </HEAD> <BODY> <input type=button name=bt value=링크체크하기 onclick=checkLinks()> <br><br> <A HREF="http://www.kibo.com">Kibo</A> | <A HREF="http://www.kibo.com/god">god</A> | <A HREF="http://www.faqts.com/js">js</A> | <A HREF="http://www.faqts.com">faqts</A> </BODY> </HTML>