[资料] 自己的第一个开源代码,javascript Comment Templates

achun 2008-03-28
就是 javascript 模板了.自认为写的还不错.向大家推荐一下.
http://code.google.com/p/jsct

 

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的事情了。


你可真认真,实际上我上面的代码是不够严谨,至少有一个错,
就是innerText有兼容性问题,FF下是没有这个属性的。
你说的 onload 和 domready的事情确实是要注意的,不过,我之所以把 jCT放到
window.onload上是由于我用jCT做的第一个项目就牵扯到 图片的自动缩放问题,解决的方法很多,

不过实际做起来你就会发现,不管你是在 window.onload 还是 body onload 去 jCT,IE总是调入两次图片,虽然第二次是从cache中调入的,我仍然无法接受,所以就用了ajax的方法,也就是一开始调入的是一个空白的页面,其他页面是动态调入分析处理的这样可以解决IE的问题。空页面么!所以就顺手写了 window.onload了。

应用的第一个小项目

czzsy.com
甲方还不知道这个问题,搜索引擎支持不了.......

管不了了...............redface

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文档的请求后自动执行某些脚本,是在觉得烦就自己改服务器吧。

 

 

 

 

Global site tag (gtag.js) - Google Analytics