本文由我司收集整编,推荐下载,如有疑问,请与我司联系
js 正则替换tinymce粘贴时自动加链接
2011/08/25 1336  firefox 3之后,出于安全考虑,浏览器禁止了js从剪贴板获取数据,但是很多时候,我们需要对粘贴的数据进行处理。对其自动加超链接便是
其中最常见的要求之一。那么该如何去实现呢?
 tinymce有一个插件,叫linkautodetect的,它可以在用户输入类似Url、email 地址时,用于判断是否自动为其添加超链接。但是该插件只有在按空格(space)建以及回车(enter)时,才会为其添加超链接。
 tinymce还有一个插件,叫paste的,用于处理从word或其他地方粘贴数据时进行处理。(本文的解决办法将不使用paste插件。因其可能导致中文乱码问题(个
人猜测))。
 综合以上两个插件,一个不算完美但可应用的简化版paste时自动添加超链接功能实现如下:
 思路:在paste动作将内容粘贴之前,建一个div层做容器,用于接收内容,将光标移动至容器层。系
统动作paste发生之后,我们获取到的容器层内的innerHTML即为粘贴的内容。取出粘贴的内容,利用replace正则替换内容中的Url、email地址。并将新内容替换旧内容。
 难点:1、光标位置操作
 2、替换的正则匹配(如何排除已添加的,正确处理开始、结尾处等)
 解决如下:在tinymce编辑器的环境中,初始化编辑器时
 在editor的初始化参数setup中添加setup : function (ed){
 .....  ed.onPaste.add(function (ed, e){  //mark the paste  mark_paste_content(ed, e);  //execute the check url after paste  setTimeout(function(){    paste_link_detect(ed);  }, 100);  });
 ....  }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。