///import core ///import uicore ///import ui/popup.js ///import ui/autotypesetpicker.js ///import ui/splitbutton.js (function() { var utils = baidu.editor.utils, Popup = baidu.editor.ui.Popup, AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker, SplitButton = baidu.editor.ui.SplitButton, AutoTypeSetButton = (baidu.editor.ui.AutoTypeSetButton = function(options) { this.initOptions(options); this.initAutoTypeSetButton(); }); function getPara(me) { var opt = {}, cont = me.getDom(), editorId = me.editor.uid, inputType = null, attrName = null, ipts = domUtils.getElementsByTagName(cont, "input"); for (var i = ipts.length - 1, ipt; (ipt = ipts[i--]); ) { inputType = ipt.getAttribute("type"); if (inputType == "checkbox") { attrName = ipt.getAttribute("name"); opt[attrName] && delete opt[attrName]; if (ipt.checked) { var attrValue = document.getElementById( attrName + "Value" + editorId ); if (attrValue) { if (/input/gi.test(attrValue.tagName)) { opt[attrName] = attrValue.value; } else { var iptChilds = attrValue.getElementsByTagName("input"); for ( var j = iptChilds.length - 1, iptchild; (iptchild = iptChilds[j--]); ) { if (iptchild.checked) { opt[attrName] = iptchild.value; break; } } } } else { opt[attrName] = true; } } else { opt[attrName] = false; } } else { opt[ipt.getAttribute("value")] = ipt.checked; } } var selects = domUtils.getElementsByTagName(cont, "select"); for (var i = 0, si; (si = selects[i++]); ) { var attr = si.getAttribute("name"); opt[attr] = opt[attr] ? si.value : ""; } utils.extend(me.editor.options.autotypeset, opt); me.editor.setPreferences("autotypeset", opt); } AutoTypeSetButton.prototype = { initAutoTypeSetButton: function() { var me = this; this.popup = new Popup({ //传入配置参数 content: new AutoTypeSetPicker({ editor: me.editor }), editor: me.editor, hide: function() { if (!this._hidden && this.getDom()) { getPara(this); this.getDom().style.display = "none"; this._hidden = true; this.fireEvent("hide"); } } }); var flag = 0; this.popup.addListener("postRenderAfter", function() { var popupUI = this; if (flag) return; var cont = this.getDom(), btn = cont.getElementsByTagName("button")[0]; btn.onclick = function() { getPara(popupUI); me.editor.execCommand("autotypeset"); popupUI.hide(); }; domUtils.on(cont, "click", function(e) { var target = e.target || e.srcElement, editorId = me.editor.uid; if (target && target.tagName == "INPUT") { // 点击图片浮动的checkbox,去除对应的radio if ( target.name == "imageBlockLine" || target.name == "textAlign" || target.name == "symbolConver" ) { var checked = target.checked, radioTd = document.getElementById( target.name + "Value" + editorId ), radios = radioTd.getElementsByTagName("input"), defalutSelect = { imageBlockLine: "none", textAlign: "left", symbolConver: "tobdc" }; for (var i = 0; i < radios.length; i++) { if (checked) { if (radios[i].value == defalutSelect[target.name]) { radios[i].checked = "checked"; } } else { radios[i].checked = false; } } } // 点击radio,选中对应的checkbox if ( target.name == "imageBlockLineValue" + editorId || target.name == "textAlignValue" + editorId || target.name == "bdc" ) { var checkboxs = target.parentNode.previousSibling.getElementsByTagName( "input" ); checkboxs && (checkboxs[0].checked = true); } getPara(popupUI); } }); flag = 1; }); this.initSplitButton(); } }; utils.inherits(AutoTypeSetButton, SplitButton); })();