Добавление пользовательской опции размера шрифта - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь реализовать пользовательский вариант шрифта.В котором я заключаю выделенный текст в редакторе в тег шрифта со стилем 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("&nbsp;"," ").replace(Newtextcontent,newFinal);//this is not working properly

            }
        }
        Blocks[0].outerHTML=Final; 
    }       
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...