老杂毛博客
  青青子衿,悠悠我心。但为君故,沉吟至今。
博客首页 | 人生历程 | 编程开发 | 机关门  
  文章分类
 
博客首页 > 搜索引擎研究 > 文章正文

【编辑器开发】formattext 链接不能新窗口,用js为选中文字加链接的方法。

2009/6/25 22:19:57
 

          研究编辑器有一段时间了,由于对javascript的熟悉只能算是在基本层面上研究,其实一个功能简单的编辑器并不是很难开发,只需要懂一个formattext方法就完全能做出一个简单的编辑器来,所有的东西只需要放里面传相应的指令就可以了,例如,你想加粗某一部分选中文字,那你就:

#lt;a href="#" onClick="FormatText('bold', '')"#gt;点我加粗#lt;/a#gt;

FormatText方法代码:

function FormatText(command, option)
{
   frames.标签id.document.execCommand(command, true, option);
   frames.标签id.focus();
}

          简单的几行代码就可以完成很多功能,倾斜就是把bold换成italic下划线就是underline为选中的文字加超级链接就是createLink,可是这里有一个问题,就是用createlink为文字加的超级链接默认不是新窗口打开的,如果要让他变成新窗口打开的则用formattext行不通,只能是自己写代码,虽然代码很简单,我则在网上查了两个多小时才间接的找到处理办法,貌似做编辑器的人遇到的问题都不是常见问题,没有人在网上讨论,所以费了好大力才找到:

// 创建或修改超级链接
function createLink()
{
  var r = 控件id(通常是iframe的id或div的id).document.selection.createRange().text;
  var val = prompt("请输入连接地址:", "http://");
  控件id.document.selection.createRange().pasteHTML("#lt;a href=\""+ val +"\" target=\"_blank\"#gt;"+ r +"#lt;/a#gt;");
}

           只要我们在链接的图标上触发这个事件就可以给文字加上新窗口打开的超级链接了,代码是很简单,可以前怎么想都想不到,光是找到了document.selection.createRange().text这个东西,这个东西可以获取被选中的文字,可是不能赋值html代码,(如果修改选中文字用这个应该可以)想得到html则是用document.selection.createRange().htmlText,最后查了很多资料才找到pasteHTML这个方法,于是顿时觉悟。

       致此一个编辑器的填加超级链接的方法算是完成了,有时间了我讲讲上传图片和插入表格的方法,最近开发这玩意才发现网上用的全是别人开发好的编辑器,真正自己开发的还很少,如果自己有能力的话,还是要自己开发,共享的东西漏洞太多,我以前就是因为用了某款asp的免费编辑器导致网站被黑客挂马,后悔莫及所以才决定自己开发一款编辑器出来,好了,今天就唠叨到这儿。

以上文章老杂毛版权所有,转载请务必注明作者和出处。

阅读: (3109)  评论(6)  
 
网友评论:
 
 1.匿名网友2009/7/21 21:39:46 
不错,很实用。
 2.雪为2010/5/20 15:59:36 
赞美~~~~
 3.110.156.164.1162011/1/1 22:17:50 
很好
 4.2016/10/30 10:15:00 
 5.2016/11/18 18:54:05 
 6.2018/5/13 15:30:14 
 
相关文章:
 谈谈换域名对网站的影响
 搜索引擎的工作原理是怎样的,搜索引擎是如何识
 百度越来越难用了
 b和strong用哪个?i和em哪个对搜索引
 地址(URL)中包含关键词对排名的影响,如何
 我们离框计算还有多远,未来的人工智能
 如何让自己的名字在百度上排名靠前
 网站改版注意事项以及如何不影响seo
 近几天google收录减少了
 asp网站如何做301重定向
 
 
     
联系作者: QQ: 657603425 Email: [email protected]
Copyright © 2007-2014 www.laozamao.com All Rights Reserved
京ICP备09002242号 北京海淀分局备案号:1101084842