/** * Created by JetBrains PhpStorm. * User: taoqili * Date: 12-1-30 * Time: 下午12:50 * To change this template use File | Settings | File Templates. */ var wordImage = {}; //(function(){ var g = baidu.g, flashObj, flashContainer; wordImage.init = function (opt, callbacks) { showLocalPath('localPath'); //createCopyButton("clipboard","localPath"); createFlashUploader(opt, callbacks); addUploadListener(); addOkListener(); }; function hideFlash() { flashObj = null; flashContainer.innerHTML = ''; } function addOkListener() { dialog.onok = function () { if (!imageUrls.length) return; var urlPrefix = editor.getOpt('imageUrlPrefix'), images = domUtils.getElementsByTagName(editor.document, 'img'); editor.fireEvent('saveScene'); for (var i = 0, img; (img = images[i++]); ) { var src = img.getAttribute('word_img'); if (!src) continue; for (var j = 0, url; (url = imageUrls[j++]); ) { if (src.indexOf(url.original.replace(' ', '')) != -1) { img.src = urlPrefix + url.url; img.setAttribute('_src', urlPrefix + url.url); //同时修改"_src"属性 img.setAttribute('title', url.title); domUtils.removeAttributes(img, ['word_img', 'style', 'width', 'height']); editor.fireEvent('selectionchange'); break; } } } editor.fireEvent('saveScene'); hideFlash(); }; dialog.oncancel = function () { hideFlash(); }; } /** * 绑定开始上传事件 */ function addUploadListener() { g('upload').onclick = function () { flashObj.upload(); this.style.display = 'none'; }; } function showLocalPath(id) { //单张编辑 var img = editor.selection.getRange().getClosedNode(); var images = editor.execCommand('wordimage'); if (images.length == 1 || (img && img.tagName == 'IMG')) { g(id).value = images[0]; return; } var path = images[0]; var leftSlashIndex = path.lastIndexOf('/') || 0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 rightSlashIndex = path.lastIndexOf('\\') || 0, separater = leftSlashIndex > rightSlashIndex ? '/' : '\\'; path = path.substring(0, path.lastIndexOf(separater) + 1); g(id).value = path; } function createFlashUploader(opt, callbacks) { //由于lang.flashI18n是静态属性,不可以直接进行修改,否则会影响到后续内容 var i18n = utils.extend({}, lang.flashI18n); //处理图片资源地址的编码,补全等问题 for (var i in i18n) { if (!(i in { lang: 1, uploadingTF: 1, imageTF: 1, textEncoding: 1 }) && i18n[i]) { i18n[i] = encodeURIComponent( editor.options.langPath + editor.options.lang + '/images/' + i18n[i], ); } } opt = utils.extend(opt, i18n, false); var option = { createOptions: { id: 'flash', url: opt.flashUrl, width: opt.width, height: opt.height, errorMessage: lang.flashError, wmode: browser.safari ? 'transparent' : 'window', ver: '10.0.0', vars: opt, container: opt.container, }, }; option = extendProperty(callbacks, option); flashObj = new baidu.flash.imageUploader(option); flashContainer = $G(opt.container); } function extendProperty(fromObj, toObj) { for (var i in fromObj) { if (!toObj[i]) { toObj[i] = fromObj[i]; } } return toObj; } //})(); function getPasteData(id) { baidu.g('msg').innerHTML = lang.copySuccess + '
'; setTimeout(function () { baidu.g('msg').innerHTML = ''; }, 5000); return baidu.g(id).value; } function createCopyButton(id, dataFrom) { baidu.swf.create( { id: 'copyFlash', url: 'fClipboard_ueditor.swf', width: '58', height: '25', errorMessage: '', bgColor: '#CBCBCB', wmode: 'transparent', ver: '10.0.0', vars: { tid: dataFrom, }, }, id, ); var clipboard = baidu.swf.getMovie('copyFlash'); var clipinterval = setInterval(function () { if (clipboard && clipboard.flashInit) { clearInterval(clipinterval); clipboard.setHandCursor(true); clipboard.setContentFuncName('getPasteData'); //clipboard.setMEFuncName("mouseEventHandler"); } }, 500); } createCopyButton('clipboard', 'localPath');