限于某些原因 我在铭瑶网没有开通数据库 但是又想把网页做成日记本
如果分成几个页面 在写日记的时候 同时更新首页连接的话 又会很麻烦
花了一周时间 利用JS+XML实现了 写日记 自动更新首页日记链接 另外附 写日记小助手(java)
源码出处
我们的家在首页放置以下代码
<table>
<td width="309" height="179" align="center"><div class="content" id="demo3"
style="OVERFLOW: hidden; HEIGHT: 100px" >
<div id="demo4">
<table height="100" cellspacing="0" cellpadding="0" width="203%" border="0">
<tbody>
<tr>
<td colspan="3" align="left" valign="top"><span class="text07" >
<script type="text/javascript">
var cdsales=new ActiveXObject("Microsoft.XMLDOM"); //创建XmlDom对象
cdsales.async=false; //异步加载
cdsales.load("./html/xinqing1.xml");
cdsales.onreadystatechange= new function LoadedSales(){
var txt="";
if(cdsales.readyState==4){
if(cdsales.parseError.errorCode != 0){
txt="XML文件读取错误,请尝试刷新......";
}
else{
var bi=cdsales.documentElement.selectNodes("jilu");
if(bi!=null&&bi.length>0){
for(var i=0;i<bi.length;i++){
txt+="<a href= "+"html/xinqing1.html#"+bi
.childNodes[0].text+"><br>"+bi.childNodes[1].text+"</a>";
}
}
else{
txt="文件读取错误,请尝试刷新.........";
}
}
}
else{
txt="Loading....";
}
document.write(txt);
}
</script>
</span> </td>
</tr>
</tbody>
</table>
</div>
<div id="demo5"></div>
</div>
<script>
var tdemo=demo3.scrollTop
var stopscrolldemo=false //添加一个控制变量,是否滚动
demo5.innerHTML=demo4.innerHTML+demo4.innerHTML
demo3.onmouseover=new Function("stopscrolldemo=true")//鼠标进设置true 不滚
demo3.onmouseout=new Function("stopscrolldemo=false")//鼠标出设置false滚
function qswhMarqueedemo(){
if (stopscrolldemo==true) {return;} //这里加这句就可以.如果=true 直接返回不滚
if(demo5.offsetTop-demo3.scrollTop<=0)
demo3.scrollTop-=demo4.offsetHeight
else
demo3.scrollTop++
}
setInterval(qswhMarqueedemo,200)
</script> </td>
</table>
读取html目录下xinqing1.xml文件 生成各条日记连接 字符为日记标题 并以从下往上的方式滚动显示
在根目录下创建html目录,存入xinqing.xml文件
格式如下
<?xml version="1.0" encoding="gb2312" ?>
<data>
<jilu>
<bb>a1(标签,用于定位,不可重复)</bb>
<date>标题+日期</date>
<neirong>内容 由于XML与HTML标签的原因 已经把换行从<br>更换成_br</neirong>
</jilu>
<jilu> <bb>a2(标签,用于定位,不可重复)</bb>
<date>标题+日期</date>
<neirong>内容 由于XML与HTML标签的原因 已经把换行从<br>更换成_br</neirong>
</jilu>
</data>
添加新日记时 按此格式添加到</data>前即可:
<jilu> <bb>a1(标签,用于定位,不可重复)</bb>
<date>标题+日期</date>
<neirong>内容 由于XML与HTML标签的原因 已经把换行从<br>更换成_br</neirong>
</jilu>在html目录下防一个xingqing1.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" c />
<title>豆豆的心情全纪录</title>
<script language="javascript" type="text/javascript">
function tihuan(s)
{
var r, re;
re = /_br/g;
r = s.replace(re, "<br> ");
return(r);
}
function MyColor(r,g,b){
this.red=r;
this.green=g;
this.blue=b;
}
MyColor.prototype.hexValue=function(){
var hR=this.red.toString(16);
var hG=this.green.toString(16);
var hB=this.blue.toString(16);
return "#"+(this.red<16?("0"+hR):hR)+(this.green<16?("0"+hG):hG)+(this.blue<16?("0"+hB):hB);
};
</script>
<style type="text/css">
<!--
body {
background-image: url(../pic/bg1.gif);
}
-->
</style></head><body><center><h1>豆豆的心情纪录</h1></center>
<br />
<br />
<script type="text/javascript">
var re = /_br/i;
var Url="xinqing1.xml";
var cdsales=new ActiveXObject("Microsoft.XMLDOM"); //创建XmlDom对象
cdsales.async=false; //异步加载
cdsales.load(Url);
cdsales.onreadystatechange= new function LoadedSales(){
var txt="";
if(cdsales.readyState==4){
if(cdsales.parseError.errorCode != 0){
txt="XML文件读取错误,请尝试刷新......";
}
else{
var bi=cdsales.documentElement.selectNodes("jilu");
if(bi!=null&&bi.length>0){
for(var i=0;i<bi.length;i++){
x1= Math.ceil(Math.random()*255);
x2=Math.ceil(Math.random()*255);
x3=Math.ceil(Math.random()*255);
var CnLeiColor=new MyColor(x1,x2,x3);
var ss=CnLeiColor.hexValue();
txt+="<a id=\""+bi.childNodes[0].text+"\"</a>"+"<font color="+ss+">"+"  <font size=6>"+bi.childNodes[1].text+"</font><br><br> "+bi.childNodes[2].text+"<br><br> 看了有感触?给我<a href =http://guestbook.new-youth.com/script/user/list.asp?userid=8300>留言</a> <font color=\"#000000\" size=2>颜色看不清?请</font><input type=button value=刷新 onclick=history.go(-0)> "+"</font><br><br><br><br><br><br><br><br><br>";
}
}
else{
txt="读取错误,请尝试刷新......";
}
}
}
else{
txt="Loading....";
}
document.write(tihuan(txt));
}
</script>
</body>
</html>
这样,就OK了
但是 写日记的时候 得注意 一定要符合规则 否则可能导致解析XML失败
为了避免手工修改不可避免的出现一些错误
又写了一个日记更新辅助工具(java语言)
因字数限制 放在二楼
该源码出处 我们的家