用JavaScript自动选择留言板
作者:周辉腾 来源:CCIDNET 添加时间:2006-5-21 9:21:56访客能够连上哪些站点跟他们的isp有关,而一般情况下他们是属于哪个isp能从他们的ip地址看出来,如202.200.114.2这个ip地址是属于教育网的,如果你有一个足够大而且详细的ip地址对照表的话,用时下流行的asp/php来检测访客的ip地址并根据数据库来为不同ip地址段分配不同留言板是完全可能的,当然前提是你有两个或两个以上的位于不同位置的留言板,但是仔细想想会不会给人一种杀鸡用宰牛刀的味道?而且实现起来好像不像说的这样简单……
这里有个简单的办法可以帮你自动选择留言板。我们知道,如果浏览器试图下载一个不存在或者说是来自错误地址的图像,服务器会返回给浏览器一个错误信息,然后由浏览器直观地告诉你当前地址的图像不存在,这就是html文档的图像载入错误事件。请看以下例子:
〈!-- 将以下代码插在〈body〉……〈/body〉标签之间 --〉
〈img src="/edu/files/pic/2006-5/21/0652109215656219.gif"′,′
imgurl1′,′imgurl2′);
function initarray(){
this.length=initarray.arguments.length;
for(var i=0;i〈this.length;i++) this[i]=initarray.arguments[i];
}
function imgdl(){
if(i〈bbsurl.length){
var strinfo=′〈img src=″http://′+bbsimg[i]+′″width=″1″ height=″1″
onload=″top.location=\′http://′+bbsurl[i]+′\′″ onerror=″gonext()″
align=″left″〉〈p〉正在检测您与位于′+bbsname[i]+′
的留言板是否能够正常连接,这大概要花费几秒钟时间,请稍候……〈/p〉′
if(document.all) document.all.imglayer.
innerhtml=strinfo;
else if(document.layers) document.
imglayer.document.write(strinfo);
}
else{
if(confirm(′您不能与本站任何留言板连接,要关闭当前窗口
吗?′)) top.close();
else{
var strinfo2=′〈p〉当前的状态是:未连接到任何服务器上
的留言板。′;
if(document.all) document.all.imglayer.innerhtml=strinfo2;
else if(document.layers) document.imglayer.document.write(strinfo2);
}
}
}
function gonext(){
window.alert(′已经检测到您与位于′+bbsname[i]+′的留言
板不能正常连接。′);
i++;imgdl();
}
//--〉〈/script〉
〈/head〉
〈body bgcolor=″#ffffff″ onload=″imgdl()″〉
〈div id=″imglayer″ style=″position:absolute; visibility:visible; z-index:1″〉〈/div〉
〈/body〉〈/html〉
除了图像,html文档还有很多其他对象的onerror事件,好好地利用它们将使你的站点变得更加吸引人。
站内搜索