Changeset 6231
- Timestamp:
- Apr 1, 2008, 8:38:34 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
OpenPNE/branches/work/ebihara/prj_deco_diary/public_html/js/tiny_mce/plugins/openpne/editor_plugin.js
r6167 r6231 58 58 ed.onPostProcess.add(function(ed, o) { // To text mode 59 59 if (o.save) { 60 o.content = t._previewToText(o.content );60 o.content = t._previewToText(o.content, ed); 61 61 } 62 62 }); … … 80 80 }, 81 81 82 _previewToText : function(s) { 83 var rule = /<(font|b|u|s|i)( size="(2|7)"| color="(#[0-9a-f]{3,6})"|)( color="(#[0-9a-f]{3,6})"| size="(2|7)"|)>(.*?)<\/\1>/; 84 s = tinymce.trim(s); 82 _previewToText : function(s, editor) { 83 var editorDoc = editor.getBody(); 85 84 86 85 function rep(re, str) { … … 88 87 }; 89 88 90 function convertHtmlTagToDecoTag(matches) 89 s = tinymce.trim(s); 90 editorDoc.innertHTML = s; 91 92 function convertHtmlTagToDecoTag(tagname, doc) 91 93 { 92 var tagname = matches[1]; 93 var font_size = matches[3] || matches[7]; 94 var font_color = matches[4] || matches[6]; 95 var value = matches[8].gsub(rule, convertHtmlTagToDecoTag); 96 var opt = ""; 97 98 // convert font tag 99 if (tagname == "font") { 100 if (font_size == "7") { 101 tagname = "large"; 102 } else if (font_size == "2") { 103 tagname = "small"; 94 var tagList = doc.getElementsByTagName(tagname); 95 var count = tagList.length; 96 var org_tagname = tagname; 97 while (tagList.length) { 98 targetObj = tagList[0]; 99 100 if (org_tagname == 'font') { 101 var size = targetObj.getAttribute('size'); 102 var color = targetObj.getAttribute('color'); 103 104 if (size == '7') { 105 tagname = 'op:large'; 106 } else if (size == '2') { 107 tagname = 'op:small'; 108 } 109 110 if (color) { 111 tagname = 'op:color:' + color.replace('#', ''); 112 } 113 } else { 114 tagname = 'op:' + org_tagname; 104 115 } 105 116 106 if (font_size && font_color) {107 return "<op:color:" + font_color + "><op:" + tagname + ">" + value + "</op:" + tagname + "></op:color>";108 } else if (font_color) {109 tagname = "color";110 opt = ":" + font_color;111 117 var newObj = document.createElement(tagname); 118 editor.dom.replace(newObj, targetObj, true); 119 tagList = doc.getElementsByTagName(org_tagname); 120 } 121 s = editorDoc.innerHTML; 122 } 112 123 113 if (tagname == "font") { // can't convert 114 return value; 115 } 116 } 117 118 var converted = "<op:" + tagname + opt + ">" + value + "</op:" + tagname + ">"; 119 return converted; 120 }; 121 122 s = s.gsub(rule, convertHtmlTagToDecoTag); 123 rep(/<br\s?\/?>/gi,"\n\n"); 124 var convertList = new Array('b', 'u', 's', 'i', 'font'); 125 for (var i = 0; i < convertList.length; i++) { 126 convertHtmlTagToDecoTag(convertList[i], editor.getBody()); 127 } 128 rep(/<\/op:color:[0-9a-f]{3,6}>/gi,"</op:color>"); 129 rep(/<\/p>/gi,"<br />"); 130 rep(/<p>/gi,""); 131 rep(/<br\s?\/?[^>]*>/gi,"\n\n"); 124 132 rep(/ /gi," "); 125 133 rep(/"/gi,"\""); … … 133 141 _textToPreview : function(s) { 134 142 s = tinymce.trim(s); 135 var rule = /<op:(b|u|s|i|large|small|color)(:( #[0-9a-f]{3,6})|)>(.*?)<\/op:\1>/;143 var rule = /<op:(b|u|s|i|large|small|color)(:([0-9a-f]{3,6})|)>(.*?)<\/op:\1>/; 136 144 137 145 function rep(re, str) { … … 148 156 if (tagname == 'color' && color) { 149 157 tagname = 'font'; 150 opt = ' color=" ' + color + '"';158 opt = ' color="#' + color + '"'; 151 159 } 152 160
Note: See TracChangeset
for help on using the changeset viewer.