自己的第一个开源代码,javascript Comment Templates
|
achun
2008-03-28
|
|
|
oldrev
2008-03-28
什么原理阿?在documet 的 onload 事件里分析替换?
|
|
|
achun
2008-03-28
oldrev 写道 什么原理阿?在documet 的 onload 事件里分析替换? 没有什么高深的。 模板的内部机制: 接收传入的txt->字符串查找替换->按段落转成数组->按语句生成函数,函数中输出 按段落转成数组就完了。 至于怎么调用,要看应用了。 documet 的 onload 事件应该是最常用的了。 |
|
|
sleets
2008-03-29
这样做不利于搜索引擎搜索网页。。。
感觉做模板主要是考验对css的掌握,css了解透彻的话移植都不是问题。 |
|
|
achun
2008-03-29
sleets 写道 这样做不利于搜索引擎搜索网页。。。 感觉做模板主要是考验对css的掌握,css了解透彻的话移植都不是问题。 模板可以兼容搜索引擎的,比如后台出处这样的html:
<html>
<head>
....
<script>
window.onload=function(){
伪代码
var dat=eval(document.getElementById('dat').innerText);
document.delElementById('dat');
var txt=body.innerHTML;
然后就是 jCT的处理了.
}
</script>
</head>
<body display='none'>
.............
.............
<code id='dat'>
{json数据}
</code>
</body>
</html>
因为数据依然在页面上,理论上搜索引擎应该可以支持的,不过没有验证过 |
|
|
oldrev
2008-03-29
呵呵,我最讨厌的语言就是 js 了,每次做 web界面都把我折磨得够呛
|
|
|
achun
2008-03-29
oldrev 写道 呵呵,我最讨厌的语言就是 js 了,每次做 web界面都把我折磨得够呛
其实不是js的错,是浏览器DOM模型和对象规范不兼容造成的,也就是和W3C兼容度造成的,最可恶的就是IE了,问题最多,firefox好那么一点点.才有了jQuery,ext,dojo.prototype,他们最基本的作用就是解决兼容性问题了. |
|
|
sleets
2008-03-29
大部分初次学习js库的人都会觉得是一个颠覆之前对js理解的过程。想了解js的话去看库和Emcscript文档。
window.onload是等到页面所有图片下载完才触发的,通常使用domready就可以做onload的事情了。 |
|
|
achun
2008-03-29
sleets 写道 大部分初次学习js库的人都会觉得是一个颠覆之前对js理解的过程。想了解js的话去看库和Emcscript文档。 window.onload是等到页面所有图片下载完才触发的,通常使用domready就可以做onload的事情了。
不过实际做起来你就会发现,不管你是在 window.onload 还是 body onload 去 jCT,IE总是调入两次图片,虽然第二次是从cache中调入的,我仍然无法接受,所以就用了ajax的方法,也就是一开始调入的是一个空白的页面,其他页面是动态调入分析处理的这样可以解决IE的问题。空页面么!所以就顺手写了 window.onload了。 应用的第一个小项目 czzsy.com 管不了了............... |
|
|
achun
2008-03-29
jCT处理的另外一种情况是这样的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml"><head>
<meta content="zh-CN" http-equiv="Content-Language"/>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
function bodyload(){
alert('body.onload:'+document.getElementById('img').width);
}
</script>
<head>
<title>jCT处理的另一种情况</title>
</head>
<body id='body' onload="bodyload();">
<img id='img' src="http://www.google.cn/intl/zh-CN/images/logo_cn.gif" onload="alert('img loaded')" />
</body>
</html>
<script>
alert('bodynotload:'+document.getElementById('body').innerHTML);
var jctdat={'你的数据'};
</script>把 script 放到 html 后面了。对这就是为了解决前面说的 搜索引擎的事情的。 jctdat 紧紧附在 html后面 不知道搜索引擎能不能支持呀! 不过 bodyload 在这里就没有什么意义了,因为我们不希望jCT处理后,图片被二次调入,虽然是从缓存里。当然应该把jCT的处理放到最后了。 缺点是增加了后台用代码输出 html 文件,不知道能不能配置服务器对于html 或 htm文档的请求后自动执行某些脚本,是在觉得烦就自己改服务器吧。
|

