/******************************************************************************* * KindEditor - WYSIWYG HTML Editor for Internet * Copyright (C) 2006-2011 kindsoft.net * * @author Roddy <luolonghao@gmail.com> * @site http://www.kindsoft.net/ * @licence http://www.kindsoft.net/license.php *******************************************************************************/ KindEditor.plugin('wordpaste', function (K) { var self = this, name = 'wordpaste'; self.clickToolbar(name, function () { var jsonp = function (url, callback) { var callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random()); window[callbackName] = function (data) { delete window[callbackName]; document.body.removeChild(script); callback(data); }; var script = document.createElement('script'); script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + callbackName; document.body.appendChild(script); }; var lang = self.lang(name + '.'), html = '<div style="padding:10px 20px;">' + '<div style="margin-bottom:10px;">' + lang.comment + '</div>' + '<iframe class="ke-textarea" frameborder="0" style="width:408px;height:260px;"></iframe>' + '</div>', dialog = self.createDialog({ name: name, width: 450, title: self.lang(name), body: html, yesBtn: { name: self.lang('yes'), click: function (e) { var str = doc.body.innerHTML; str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); if (typeof self.wordImageServer !== 'undefined' && self.wordImageServer) { var i = 0; var arr = []; var replacedStr = str.replace(/file:\/\/+(localhost)?(\S+\.(png|jpg|jpeg|gif|bmp))/ig, function (value) { arr[i] = value; var replaced = "##" + i + "##"; i++; return replaced; }); for (var j = 0; j < arr.length; j++) { jsonp("http://" + self.wordImageServer + "/word?index=" + j + "&file=" + encodeURIComponent(arr[j]), function (data) { K.uploadwordimage.call(self, data.index, data.info); }); } str = replacedStr; } self.insertHtml(str).hideDialog().focus(); } } }), div = dialog.div, iframe = K('iframe', div), doc = K.iframeDoc(iframe); if (!K.IE) { doc.designMode = 'on'; } doc.open(); doc.write('<!doctype html><html><head><title>WordPaste</title></head>'); doc.write('<body style="background-color:#FFF;font-size:12px;margin:2px;">'); if (!K.IE) { doc.write('<br />'); } doc.write('</body></html>'); doc.close(); if (K.IE) { doc.body.contentEditable = 'true'; } iframe[0].contentWindow.focus(); }); });