Archive

Author Archive

在线HTML编辑器原理

February 23rd, 2008 No comments

 给ecms换编辑器

http://blog.voc.com.cn/sp1/hao123mh/142413412033.shtml

为什么能实现在线编辑呢?  首先需要ie 的支持,在 ie 5.5以后就有一个编辑状态,就是利用这个编辑状态,然后用javascript 来控制在线编辑的。下面给出一个简短的例子:首先要有一个编辑框,这个编辑框其实就是一个 可编辑状态的 网页,我们这里用iframe 来建立编辑框

<IFRAME id=HtmlEdit style="WIDTH: 100%; HEIGHT: 296px" marginWidth=0 marginHeight=0> </IFRAME>
并且在 加上javascript 代码来指定 HtmlEdit 有编辑功能:
function document.onreadystatechange(){
  HtmlEdit.document.designMode="On";
}
HtmlEdit.document.body.innerHTML  这句可以获得 HtmEdit 里面的html代码. 一般的我们会用这样的javascript 将 iframe 里的内容传递给一个textarea 然后提交给服务器处理.
function getIframeData(){
   document.form1.test.value=HtmlEdit.document.body.innerHTML;
}
function sentIframeData(){
   HtmlEdit.document.body.innerHTML=document.form1.test.value;
}
var sel = HtmlEdit.document.selection.createRange(); 而这一句可以获得选取的焦点:
下面我就演示一个完成的例子. 一个拥有加粗功能的在线编辑器,有兴趣的朋友可以在此基础上完成其他功能!!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function getIframeData(){
 document.form1.test.value=HtmlEdit.document.body.innerHTML;
}
function sentIframeData(){
 HtmlEdit.document.body.innerHTML=document.form1.test.value;
}
function doB(){
  HtmlEdit.focus();
  var sel = HtmlEdit.document.selection.createRange();
  insertHTML("<b>"+sel.text+"</b>");
}
function insertHTML(html) {
 if (HtmlEdit.document.selection.type.toLowerCase() != "none"){
   HtmlEdit.document.selection.clear() ;
   }
  HtmlEdit.document.selection.createRange().pasteHTML(html) ;
}
function document.onreadystatechange(){
   HtmlEdit.document.designMode="On";
}
</script>
</head>
<body>
<form action="test.asp?act=add" method="post" name="form1">
 
<IFRAME id=HtmlEdit style="WIDTH: 100%; HEIGHT: 296px" marginWidth=0 marginHeight=0></IFRAME>
<textarea name="test" rows="10" id="test" style="width:100%;"></textarea>
<br/>
<input type="submit" name="Submit" value="提交">
<input type="button" value="iframe->textarea">
<input type="button" value="textarea->iframe">
<input type="button" value="B">
</form>
</body>
</html>
Categories: 整站程序 Tags:

孤独

January 28th, 2008 No comments

宿舍只剩自己一个人了,有时间自己思考一下了。

糊里糊涂的在网络上混了三年多了,至今只剩了两个网站,其他的都是垃圾站。

一个站百度老是不感冒,打算春节回来后改版,可能会换整站。

其他的域名都不续费了,留一两个自己中心的。

网站不会再建了,只是维护那两个。

垃圾站不再更新,知道域名到期。

空间的大小改变,最后只留1g。

当时的热情,而现在自己更冷静了。

做网站兼职还可以,做为主业并不一定适合每一个人。

也许更应该看看自己的专业,少分散精力。

Categories: 生活琐记 Tags:

TextPattern的处女帖

January 25th, 2008 No comments

还像往常一样,使用一种整站程序总要建立一个版块来记录自己的心得。

一用到txp就感觉像久违的老朋友见了面一样。

扩展性强,简约而不简单。

Categories: 整站程序 Tags:

ecms seo的思考

December 29th, 2007 No comments

自己用了一年多的ecms,从4.0到4.6,功能可能是最好的,而且也是最稳定和安全的。

就是有一点,它不开源,而且每个页面都有一个类似于

这样的尾巴。

这个尾巴按照搜索引擎的协议,他们是忽略这个注释的。

google确实是这样,而baidu就自私一些,这是标记一个网站的很好手段,有这个标记的就降权。

只是我自己的体验,不代表一般现象。

而且现在的4.7,只有首页和栏目封面有这个尾巴了,情况会好许多。

Categories: 网站建设 Tags: ,

phpcms2007将频道首页设为网站首页的方法

November 11th, 2007 No comments

本方法是利用copy函数将频道首页复制为网站首页,在更新频道首页时,同步更新网站首页,不必在更新首页。
本例是把文章频道的首页设为网站首页。
在module/article/include/createhtml/index.php第20行加入如下代码

$file = 'article/index.html';
$newfile = 'index.html';
if (!copy($file, $newfile)) {
  echo "failed to copy $file…\n";
}

在更新文章频道首页的时候,就把文章首页复制为网站首页,原来的被覆盖掉,换句话说,也就没有必要在更新首页。
如果你想把下载频道首页设为网站首页到相应目录把代码中的article换为down即可。
注意:本方法只适用于整个网站只有一个同类型频道

代码的安全性没有考虑,还有就是代码中的引号要注意,可能需要用单角重新输入。

Categories: 整站程序 Tags: