[重发旧文]论坛开发和HTML/JS兼容

整理硬盘,删除掉些东西。干脆重发到BBS上作为备份。

标题: [讨论]关于论坛开发的几点建议。
近来研究HTML和js语法。对leo程序的HTML语法和js代码有点小小的看法。
1,尽量少用只有ie支持的HTML扩展HTML代码。。
leobbsx现在的forums.cgi上面的介绍就用了非正规的HTML代码。使在NS和Mozilla下界面难看的厉害。。。
2。JS要操作<div> 和<span> 的内容。。请使用符合CSS2+HTML3标准的DOM接口。现在的forums.cgi展开帖子(就是哪个+号)和帖子里广告和虚拟形象和COOL字体转化都采用了all.name方式的调用。但是all方式只有ie支持。。所以在非ie下这个都不能显示。。。。
正确的应该用document.getElementById方式调用的。。。

[郁闷+灌水]再谈leobbsx系列的js兼容问题。

近来一直使用的非ie内核的浏览器,然后看看lb的js,问题多多挖。。没有想到里面的js部分几乎全部是base on ie的Dom接口的。。。
也就是都是使用的document.all方式而不是HTML3+CSS2标准之document.getElementById方式。

牵扯到的程序有:
1.RoyRoy的forums.cgi帖子展开。。在非ie下根本不显示。
2.COOL字体转化。这个在board.js里面。也是对<span>操作的DOM接口不对,无法使用。
3.3face。这个居然全部是ie方式写的。大量的js呀,而且已经是官方重要功能了。。。ft,去了一次3元,发现阿强的所有程式全部base on "document.all"方式!,汗。就是他的所有程式都是对ie支持的。
4.BigJim的插件。。写法基本同阿强,多了ie5.5+的判断,但是也是base on "document.all" 的。比如leo官方的现在的体育博彩就是操作(显隐)<span><div>的代码就是不能正常。
还有许多不起眼的小问题。比如说那个小ctrl+enter提交js也不兼容。。

js操作<span><div>的内容现在已经是阿强和BigJim程序的特点了,优点很多。节省资源,美观等等,但是却不幸的使用了ie专用的DOM接口。

修改起来。。工作量很大。而且就路杨对js的三脚猫的水平。只能提提而已了。。

比如,3face现在在board.js里面的显示代码为:


var _Num=1;
function Face_Info(face,ImgURL){
var showArray=face.split('-');var s="";
document.write("<DIV id=SHOW"+_Num+" style='padding:0;position:relative;top:0;left:0;width:140;height:226' title=论坛虚拟形象></DIV>");
for (var i=0; i<=25; i++){if(showArray[i] != '0'){s+="<IMG src="+ImgURL+"/face/"+i+"/"+showArray[i]+".gif style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:"+i+";'>";}}
s+="<IMG src="+ImgURL+"/face/blank.gif style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:50;'>";
var _FACE=eval("SHOW"+_Num);_FACE.innerHTML=s;_Num++;
}

这段代码会在非ie内核的浏览器(当然是高版本,低版本的不说)下报告SHOW1 is undefine ,就是接口问题,可以尝试改成

var _FACE=document.getElementById("SHOW"+_Num);

就可以同时在ie和其他支持js的非ie内核的浏览器同时正常显示虚拟形象了。。

并非吹毛求疵,纯技术研究而已。。究竟现在几乎ie一统天下。ft..

近来去沙滩小子那里逛逛。。发现整个页面分论坛都显示不了。奇怪ing。。分析代码。发现整个页面论坛显示全部用了js的正则/替换/splite 完成。。
于是彻底ft。。这个功能只有ie5.5+ Moziila 1.3b(Maybe?我记不清楚了)才支持。。而我目前的浏览器是Base ie5.01 -_-bbbbbb
-----
EXCERPT: