开发者

How to find if user has selectedwhole text or a part of text in tiny mce

I want to check the node of the selected text. If it is span, another function will edit the classes applied to it. If it is same as the parent node, then the code will wrap the selection in span and set its styles. The problem here I'm facing is, how to determine, if user has selected the whole text inside the editor or only some text. If user selects the whole text, I want to apply the styles to the parent node instead of adding a new span and styles to it. Below is my code -

  var ed=tinyMCE.getInstanceById('textAreaId'); 
  var sel = ed.selection.getContent();

  if(trim(sel)!="") {
  //get the node of the selection
  var thisNode=tinyMCE.activeEditor开发者_如何转开发.selection.getStart().nodeName;   
 ed_Property=propertyName;
 ed_PropertyVal=propertyValue;
 //get the root node inside editor
 var parentNode=tinyMCE.activeEditor.getBody().firstChild.nodeName;
 if(thisNode=="SPAN") {
 nodeclass=$(tinyMCE.activeEditor.selection.getNode()).attr('class');    
//edit span properties
editSpanProperties(nodeclass,propertyName,propertyValue);

}
 else if(thisNode==parentNode) {
  var elmType="span";
  var Spanid1=createSpanId(targetToStyle,elmType);
  Spanid=targetToStyle+"_"+elmType+"_"+Spanid1;
  var strStyle=ed_Property+":"+ed_PropertyVal;
//wrap selection in a span
sel = "<span id='"+Spanid+"' style='"+strStyle+"'>" + sel + "</span>";
//set content    
ed.selection.setContent(sel);
//retain the selection
  ed.selection.select(ed.dom.select('#'+Spanid)[0],false);

}

  else {

     //here I need to check if user has selected whole text and set properties
    setStylesOnEditor(templateSection,propertyName,propertyValue);    
  }//if ends


  }
   else if(trim(sel)=="")   {
   alert('No text selected');
  }


how to determine, if user has selected the whole text inside the editor or only some text.

You need to compare the selected text with the editors content:

var content_editor = $(ed.getBody()).text();

var content_selection = ed.selection.getContent({format : 'text'});

// now compare both either characterwise or as whole string, 
// you might need to strip whitespace characters from the strings!
// and do what you want to do in each case
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜