Я пытаюсь реализовать пользовательский вариант шрифта.В котором я заключаю выделенный текст в редакторе в тег шрифта со стилем font-size, я получил выбранный контент из редактора, поэтому создал новый тег шрифта и попытался заменить выбранный контент новым тегом шрифта.Но какое-то время это не работает.Может ли кто-нибудь предоставить мне другой способ его реализации?Если я выделю текст, он должен быть заключен в тег шрифта с выбранным пользователем размером шрифта.
мой код:
function stripHtml(html){
var temporalDivElement = document.createElement("div");
temporalDivElement.innerHTML = html;
return temporalDivElement.textContent || temporalDivElement.innerText || "";}
function SetFontSizeNew(value){
var theSelectionObject = tinyMCE.activeEditor.selection.getNode();
var Blocks = tinymce.activeEditor.selection.getSelectedBlocks();
var Text=tinymce.activeEditor.selection.getContent({format : 'html'}).toString();
var fontfamily="";
if($(Blocks[0]).find("font").length>0){
fontfamily=$(Blocks[0]).find("font")["0"].style.fontFamily;
}
else{
fontfamily=Blocks[0].style.fontFamily;
}
var Final="";
if(theSelectionObject.offsetParent.tagName=="TR"||theSelectionObject.offsetParent.tagName=="TD"||theSelectionObject.offsetParent.tagName=="TABLE")
{
var theSelectionObject = tinyMCE.activeEditor.selection.getNode();
var table=$(theSelectionObject).closest('td');
var Newtextcontent=stripHtml(Text);
if(Blocks[0].innerText==Newtextcontent){
var htmltag=$($($(Blocks[0]))["0"].innerHTML);
var element=[];
for(j=0;j<htmltag.length;j++){
if(htmltag[j].tagName=="FONT"){
element.push(htmltag[j]);
$(htmltag[j]).css('font-size', value+"pt");
}
}
var eleouterhtml="";
for(k=0;k<element.length;k++){
$(element[k]).css('font-size', value+"pt");
}
for(l=0;l<htmltag.length;l++){
if(htmltag[l].nodeName=="#text"){
eleouterhtml=eleouterhtml+htmltag[l].textContent;
}
else{
var fonttag=$(htmltag[l]).find('font');
$(fonttag).css('font-size', value+"pt");
eleouterhtml=eleouterhtml+htmltag[l].outerHTML;
}
}
if(Blocks[0].childNodes["0"].nodeName=="#text"){
Final='<font style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "")+ '" data-mce-style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "") + '">'+eleouterhtml.trim()+'</font>';
}
else{
Final=eleouterhtml.trim();
}
Blocks[0].innerHTML=Final;
var newOutput=Blocks[0].outerHTML;
Blocks[0].outerHTML=newOutput;
}
else{
if(theSelectionObject.innerHTML==Text){
$(theSelectionObject).css('font-size', value+"pt");
Final=Blocks[0].outerHTML;
Blocks[0].outerHTML=Final;
}
else{
var newFinal='<font style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "")+ '" data-mce-style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "") + '">'+Text+'</font>';
Final=Blocks[0].outerHTML.replace(Text,newFinal);
Blocks[0].outerHTML=Final;
}
}
}
else{
var Newtextcontent=stripHtml(Text);
if(Blocks[0].innerText==Newtextcontent){
var htmltag=$($($(Blocks[0]))["0"].innerHTML);
var element=[];
for(j=0;j<htmltag.length;j++){
if(htmltag[j].tagName=="FONT"){
element.push(htmltag[j]);
}
}
var eleouterhtml="";
for(k=0;k<element.length;k++){
$(element[k]).css('font-size', value+"pt");
}
for(l=0;l<htmltag.length;l++){
if(htmltag[l].nodeName=="#text"){
eleouterhtml=eleouterhtml+htmltag[l].textContent;
}
else{
var fonttag=$(htmltag[l]).find('font');
$(fonttag).css('font-size', value+"pt");
eleouterhtml=eleouterhtml+htmltag[l].outerHTML;
}
}
if(Blocks[0].childNodes["0"].nodeName=="#text"){
Final='<font style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "")+ '" data-mce-style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "") + '">'+eleouterhtml.trim()+'</font>';
}
else{
Final=eleouterhtml.trim();
}
}
else{
if(theSelectionObject.innerHTML==Text){
$(theSelectionObject).css('font-size', value+"pt");
Final=Blocks[0].outerHTML;
}
else{
var newFinal='<font style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "")+ '" data-mce-style="font-size:'+value+'pt;font-family:'+ fontfamily.replace(/["]/g, "") + '">'+Text+'</font>';
Final=Blocks[0].outerHTML.replace(" "," ").replace(Newtextcontent,newFinal);//this is not working properly
}
}
Blocks[0].outerHTML=Final;
}
}