/** * 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')