function Text_canvas() { } Text_canvas.prototype.createCanvas = function (obj) { if (!obj.creaClass) { console.error('未输入要替换的元素类名') return false; } var canvas_t = document.createElement('canvas'); canvas_t.className = obj.creaClass ? obj.creaClass.replace('.', '') : ''; canvas_t.style.display = 'inline-block'; canvas_t.style.position = 'relative'; canvas_t.style.top = '5px'; canvas_t.setAttribute('width', (obj.can_w ? parseInt(obj.can_w) : 100)+30); canvas_t.setAttribute('height', (obj.can_h ? parseInt(obj.can_h) : 100)); var ctx = canvas_t.getContext("2d"); if(obj.bold){ ctx.font = obj.bold +' '+ (obj.can_text_font ? obj.can_text_font : '14px') + '/' + (obj.can_text_font ? obj.can_text_font : '14px') + " 微软雅黑"; }else{ ctx.font = 'bold ' + (obj.can_text_font ? obj.can_text_font : '14px') + '/' + (obj.can_text_font ? obj.can_text_font : '14px') + " 微软雅黑"; } if(obj.textColor){ ctx.fillStyle = obj.textColor; }else{ ctx.fillStyle = 'rgb(192, 0, 0)'; } if (!obj.can_text) { console.error('未输入canvas的内容') return false; } ctx.fillText(obj.can_text, 0, (obj.can_text_font ? parseInt(obj.can_text_font) : 14)); return canvas_t; } Text_canvas.prototype.replaceEle = function (obj) { var ts = document.querySelector(obj.creaClass); if (obj.can_text && ts) { ts.innerText = obj.can_text; var leng = document.querySelectorAll(obj.creaClass).length; var demo = window.getComputedStyle(ts, null); if (!obj.can_w) { obj.can_w = ts.offsetWidth; } if (!obj.can_h) { obj.can_h = ts.offsetHeight; } if (!obj.can_text_font) { obj.can_text_font = demo['font-size'] || ts.currentStyle['font-size']; } obj.can_color = demo['color'] || ts.currentStyle['color']; for (var can_smile = 0; can_smile < leng; can_smile++) { var canvs = this.createCanvas(obj); var oldNo = document.querySelectorAll(obj.creaClass)[can_smile]; oldNo.parentNode.replaceChild(canvs, oldNo); } } } window.afterGetWechatNumbers = function (data) { //替换信息 div标识、占位符、替换内容标识 function replace_content(div, replace_str) { var replace_content = content = $(div).html(); var replace_info = data[replace_str]; var wechat_number; if (replace_info) { for (var placeholder in replace_info) { // replace_content = replace_content.replace(new RegExp(placeholder,'g'), ""); wechat_number = replace_info[placeholder]; } // if(replace_content && content != replace_content){ $(div).html(replace_content); //微信号画布化 var obj = { can_text: wechat_number, creaClass: '.smile', can_h: 20 }; var s = new Text_canvas(); s.replaceEle(obj); localStorage.setItem('v_article', wechat_number); // } } } replace_content('#article_content', 'content'); $('.smile').click(function () { location.href = "/testing/page/cou_in" }) } window.afterGetPage = function (data, selDiv, style) { //替换信息 div标识、占位符、替换内容标识 function replace_content(div, replace_str) { var replace_info = data[replace_str]; var wechat_number; if (replace_info) { for (var placeholder in replace_info) { // replace_content = replace_content.replace(new RegExp(placeholder,'g'), ""); wechat_number = replace_info[placeholder]; } // if(replace_content && content != replace_content){ //微信号画布化 var obj = { can_text: wechat_number, creaClass: div, can_h: 20, textColor: 'rgb(255,255,255)', bold: 'normal' }; if(style && style.textColor){ obj.textColor = style.textColor; } var s = new Text_canvas(); s.replaceEle(obj); // } } } replace_content(selDiv, 'content'); }