javascript 用标签包裹文本

2024-01-12

我正在向tinyMCE添加一个按钮,例如,我想知道如何使用javascript将文本包装在标签内(此突出显示的文本被包装在标签内)[highlight][/highlight]标签)。 现在整个tinymce

(function() {
tinymce.create('tinymce.plugins.shoutButton', {
    init : function(ed, url) {
        ed.addButton('shout.button', {
            title : 'shout.button',
            image : 'viral.gif',
            onclick : function() {
                window.alert("booh");
        });
    },
    createControl : function(n, cm) {
        return null;
    },
    getInfo : function() {
        return {
            longname : "Shout button",
            author : 'SAFAD',
            authorurl : 'http://safadsoft.com/',
            infourl : 'http://safadsoft.com/',
            version : "1.0"
        };
    }
});
tinymce.PluginManager.add('shout.button', tinymce.plugins.ShoutButton);

})();


您可以使用setSelectionRange (mozilla/webkit) 或selection.createRange (IE) 方法来查找文本区域中当前突出显示的文本。 我举了一个例子jsfiddle http://jsfiddle.net/niklasvh/2YNpJ/,但已注释掉您的正则表达式,因为它在许多情况下会挂起浏览器。您需要使其更具限制性,目前它还传递了除 YouTube 网址之外的许多其他内容。

但是,该示例有一个有效的解决方案,如何获取当前选定的文本,您可以在修复模式后将其应用于 idPattern.exec()。

idPattern = /(?:(?:[^v]+)+v.)?([^&=]{11})(?=&|$)/;
  //  var vidId = prompt("YouTube Video", "Enter the id or url for your video");


    var vidId;
      el = document.getElementById('texty');
      if (el.setSelectionRange) {
        var vidId = el.value.substring(el.selectionStart,el.selectionEnd);
      }
      else if(document.selection.createRange()) {
          var vidId = document.selection.createRange().text; 
      }

   alert(vidId);

编辑:包装突出显示的文本并将其输出回元素。example http://jsfiddle.net/2YNpJ/51/

el = document.getElementById('texty');
  if (el.setSelectionRange) {

     el.value = el.value.substring(0,el.selectionStart) + "[highlight]" + el.value.substring(el.selectionStart,el.selectionEnd) + "[/highlight]" + el.value.substring(el.selectionEnd,el.value.length);

  }
  else if(document.selection.createRange()) {
      document.selection.createRange().text = "[highlight]" + document.selection.createRange().text + "[/highlight]"; 
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 用标签包裹文本 的相关文章

随机推荐