编辑器003-创新互联

站在用户的角度思考问题,与客户深入沟通,找到萨尔图网站设计与萨尔图网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖萨尔图地区。>var ToolObj; var ContentObj; var RangArr = {}; //定义一个数组变量:用于存储选择范围:rangvar Extend = function (destination, source) { for (var item in source) { destination[item]= source[item]; } return destination; } var EventUtil = function (element, type, hander) { if (element.addEventListener) { element.addEventListener(type, hander,false); }else if (element.attachEvent) { element.attachEvent("on" + type, hander); }else { element["on" + type] = null; } } var DO = function (id) { return typeof id == "string" ? document.getElementById(id) : undefined; } Object.prototype._addClass= function (_className) { this.className = this.className + " " + _className; } Object.prototype._removeClass= function (_className) { this.className = this.className.toString().replace(_className, ""); }; var GetoffsetLeft = function (element) { var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null) { actualLeft+= current.offsetLeft; current= current.offsetParent; } return actualLeft; } //编辑器方法var T = { B:function () { T.Excmd("bold"); }, U:function () { T.Excmd("underline"); }, I:function () { T.Excmd("Italic"); }, FS:function () { var cmdValue = DO("selFontSize").value; T.ExcmdFont("FontSize", cmdValue); }, Excmd:function (cmdName) { ContentObj.focus(); if (rangy.getSelection().toString() == "") { T.GetRange(); } document.execCommand(cmdName); T.SetStyle(); }, ExcmdFont:function (cmdName, cmdValue) { ContentObj.focus(); if (rangy.getSelection().toString() == "") { T.GetRange(); } document.execCommand(cmdName,false, cmdValue); T.SetStyle(); }, InsertHTML:function (_html) { ContentObj.focus(); T.GetRange(); var sel = rangy.getSelection(); if (sel && sel.getRangeAt && sel.rangeCount) { var range = sel.getRangeAt(0); var node = range.createContextualFragment(_html); var lastNode = node.lastChild; range.insertNode(node); range.setEndAfter(lastNode); range.collapse(false); //折叠:true光标到开始,false:光标到结束 sel.removeAllRanges(); sel.addRange(range); sel.collapseToEnd(); }; }, InserPhize:function (e) { var phizeHtml = e.innerHTML; T.InsertHTML(phizeHtml); DO('phize').style.display = "none"; DO('img_0').style.border = ""; }, PhizHTML:function (e) { phize= DO('phize'); var emtop = e.offsetTop; var emleft = e.offsetLeft; phize.style.top= parseInt(emtop) + 28 + "px"; phize.style.left= parseInt(emleft) + 100 + "px"; if (phize.style.display == "block") { phize.style.display= "none"; e.lastChild.lastChild.style.border= ''; } else { e.lastChild.lastChild.style.border= 'solid 1px blue'; phize.style.display= "block"; } }, SaveRange:function () { var sel = rangy.getSelection(); if (sel && sel.getRangeAt && sel.rangeCount) { RangArr["r_1"] = sel.getRangeAt(0); } else { RangArr["r_1"] = null; } }, GetRange:function () { var sel = rangy.getSelection(); if (sel && sel.getRangeAt && sel.rangeCount) { var range = RangArr["r_1"]; if (range) { sel.removeAllRanges(); sel.addRange(range); } } }, SetStyle:function () { $(".editTool div").removeClass("curr"); if (document.queryCommandState("Bold")) { $("#bold").addClass("curr"); } if (document.queryCommandState("Underline")) { $("#underline").addClass("curr"); } if (document.queryCommandState("Italic")) { $("#italic").addClass("curr"); } }, phizeMouseOver:function (e) { e.setAttribute("style", "border:solid 1px blue"); }, phizeMouseOut:function (e) { e.setAttribute("style", "border:solid 1px #D3E4F0"); } }; var ToolOne = function (options) { this.SetOptions(options); ToolObj= DO(this.options.toolId); //工具条对象 ContentObj = DO(this.options.cotentId);//编辑框对象 this.init(); this.BindToolHTML(); } ToolOne.prototype= { init:function () { EventUtil(ContentObj,"click", function () { T.SaveRange(); T.SetStyle(); }); EventUtil(ContentObj,"keyup", function () { T.SaveRange(); T.SetStyle(); }); ToolObj._addClass("editTool"); ContentObj._addClass("bc editContent"); ContentObj.setAttribute("contenteditable", "true"); }, SetOptions:function (_options) { this.options = { toolId:"", cotentId:"", item: ["bold", "underline", "italic", "inserHTML", "phiz", "fontsize"] }; Extend(this.options, _options || {}); }, BindToolHTML:function () { var _tooHtml = new Array(); _tooHtml.push('bold|
B
'); _tooHtml.push('underline|
U
'); _tooHtml.push('italic|
I
'); _tooHtml.push('inserhtml|
+
'); _tooHtml.push('phiz|
'); _tooHtml.push('fontsize|
' + '
'); for (var i = 0; i < this.options.item.length; i++) { ToolObj.innerHTML+= this.GetTooName(this.options.item[i], _tooHtml); } this.BindPhize(); }, BindPhize:function () { var phdiv = document.createElement("div"); phdiv.setAttribute("id", 'phize'); phdiv.setAttribute("style", "display:none;position:absolute;background-color:white"); var phul = document.createElement("ul"); phul.className= 'phul'; phdiv.appendChild(phul); for (var i = 0; i < 49; i++) { phul.innerHTML+= '
  • '; } phdiv.appendChild(phul); document.body.appendChild(phdiv); }, GetTooName:function (funName, _tooHtml) { for (var i = 0; i < _tooHtml.length; i++) { var val = _tooHtml[i].split('|')[0]; funName= funName.toLowerCase(); val= val.toLowerCase(); if (val == funName) { return _tooHtml[i].split('|')[1]; } } return ""; } }
    ToolOne.js
    .bc_blue{ border: solid 1px blue; }
    .bc{ border: solid 1px #2C3D5B; }
    .fontbold{font-weight:bold;}
    .w80{width:80px}
    .w100{ width: 100px;  }
    .w200{ width: 200px;  }
    .w600{ width: 600px;  }
    .h300{ height: 100px; }
    .edti{border:solid 1px #ccc;width:700px;}
    .editContent{ background-color:White;padding:10px;word-wrap:break-word;height: auto; min-height: 200px;padding-top:15px;}
    .editTool{width:100%;height:26px;background-color:#D7E4F2;margin:0px;}
    .editTool div{ float:left;padding:3px 9px 3px 9px; cursor:pointer;text-decoration:none;color:Black}
    .editTool  .curr{background-color:#81AAD1;}
    .phdiv{  width: 200px; height: 200px; padding: 0px; }
    .phhe{ width: 100%; height: 20px; text-align: right; margin: 0px;  }
    .phul{  border: solid 1px #7A8B7C; width: 200px; height: 200px; padding: 0px;  margin: 0px; }
    .phli{ border: solid 1px #D3E4F0; float: left; width: 24px; height: 24px;  list-style: none; margin: 1px; }
    EditBase.css
                
    window.onload= function () { new ToolOne({ toolId:"divTool", cotentId:"divCon", item: ["bold","underline","italic","inserHTML","phiz","fontsize"] }); } default.html
    分享文章:编辑器003-创新互联
    本文来源:http://ybzwz.com/article/dppgjo.html

    其他资讯