摘要:搜索設置為方法中的的注釋掉直接更改了中的源碼,相當不友好,只是目前沒找到其他搞法替換選中的字符串上并沒有修改選中字符串的方法。
版本: 1.4過程
仔細閱讀github倉庫readme,起手一個demo
閱讀開發文檔 ,基本插件開發如下:
新建js
UE.registerUI("quote", function (editor, uiName) {
var btn = new UE.ui.Button({
//按鈕的名字
name: uiName,
//提示
title: uiName,
//需要添加的額外樣式,指定icon圖標,這里默認使用一個重復的icon
cssRules: "background-position: -500px 0;",
//點擊時執行的命令
onclick: function () {
//這里可以不用執行命令,做你自己的操作也可
editor.execCommand("inserthtml", "哈哈哈哈哈哈")
}
});
//因為你是添加button,所以需要返回這個button
return btn;
})
開發API等查看文檔
查看插件市場,閱讀其他作者的插件源碼
表單生成器插件
記錄 生成彈窗var dialog = new UE.ui.Dialog({ iframeUrl: editor.options.UEDITOR_HOME_URL + "dialogs/popup.html", // url name: "popup", editor: editor, title: "寫入批注", // iframe title cssRules: "width:600px;height:260px;", // iframe 寬高 buttons: [ { className: "edui-okbutton", label: "確定", onclick: function () { dialog.close(true); editor.execCommand("html"); } }, { className: "edui-cancelbutton", label: "取消", onclick: function () { dialog.close(false); } }] }) dialog.render(); // 渲染 dialog.open(); // 打開彈出
var popup = new baidu.editor.ui.Popup({ editor: this, content: "", className: "edui-bubble", _edittext: function () { baidu.editor.plugins[thePlugins].editdom = popup.anchorEl; me.execCommand(thePlugins); this.hide(); }, _delete: function () { if (window.confirm("確認刪除該控件嗎?")) { baidu.editor.dom.domUtils.remove(this.anchorEl, false); } this.hide(); } }) popup.render();$$含義
文本框: 編輯 <
中的$$含義?
全局查找得知:
baidu.$$ = window[baidu.guid] = window[baidu.guid] || {global:{}};注冊插件形式開發
之前registerUI注冊UI開發, 為了實現更復雜的效果,使用plugins注冊
UE.plugins["quote"] = function() { var me = this,thePlugins = "quote"; me.commands[thePlugins] = { execCommand: function () { } } }生成彈窗后的值如何獲取判斷?
在彈窗所屬的html中,已經全局暴露了一個dialog對象,就是之前new的new UE.ui.Dialog.dialog有一些鉤子和方法:
var oNode = null, thePlugins = "quote"; window.onload = function () { if (UE.plugins[thePlugins].editdom) { oNode = UE.plugins[thePlugins].editdom; var gValue = oNode.getAttribute("value").replace(/"/g, """); gValue = gValue == null ? "" : gValue; $G("orgvalue").value = gValue; } } dialog.oncancel = function () { if (UE.plugins[thePlugins].editdom) { delete UE.plugins[thePlugins].editdom; } } dialog.onok = function () { if($G("orgvalue").value.trim() == "") { alert("請輸入批注內容") return false; } var gValue=$G("orgvalue").value.replace(/"/g,"""); }
需要引入百度的工具文件
類似$G都是工具文件里定義的封裝函數
解除html規則過濾div會被解析成p標簽,順帶style script也被屏蔽了。
ueditor.all.js搜索 allowDivTransToP設置為false
addInputRule方法中的style script的case注釋掉
直接更改了ueditor.all.js中的源碼,相當不友好,只是目前沒找到其他搞法
替換選中的字符串UE.editor上并沒有修改選中字符串的方法。
range.deleteContents(); 刪除選區的內容
range.insertNode(); 新增node節點 可以是TextNode ElementNode fragment
var range = UE.getEditor("editor").selection.getRange(); range.select(); var node = document.createTextNode("你說你想要逃"); ue.selection.getRange().deleteContents().insertNode(node)
老實說:這個ueditor API比官網的全太多了,官網沒有記錄的API方法,這兒都能查到
使用命令來使用,因為命令可以有撤回和前進操作
命令名稱必須是小寫!!!
me.commands["quoteupdate"] = { execCommand: function (str) { console.log(str) var range = this.selection.getRange(); range.select(); var node = document.createTextNode("你說你想要逃"); this.selection.getRange().deleteContents().insertNode(node) } }排序右側的批注信息,使其不重疊,再次渲染
// obj: 排序的json對象, key: 排序的key值 function sort(obj, key) { var arr = [] for (var item in obj) { var current = obj[item] if (arr.length === 0 && current[key]) { arr.push(current) } else { var pos = arr.length - 1 var index = 0; while (pos >= 0) { if (arr[pos][key] < current[key]) { arr.splice(pos + 1, 0, current) break; } else { if (pos == 0) arr.splice(pos, 0, current) } pos--; } } } return arr; } function changeAndCalculator(store) { // 調用排序函數 var arr = sort(store, "top") html = "
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102755.html
摘要:年,軟件開發界發生了很多變化。六數據存儲是一個關系型數據庫管理系統,由瑞典公司開發,目前屬于旗下公司。最流行的關系型數據庫管理系統,在應用方面是最好的,關系數據庫管理系統應用軟件之一。七是最新的修訂版本,年月由萬維網聯盟完成標準制定。 2015年,軟件開發界發生了很多變化。有很多流行的新語言發布了,也有很多重要的框架和工具發布了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺...
摘要:年,軟件開發界發生了很多變化。六數據存儲是一個關系型數據庫管理系統,由瑞典公司開發,目前屬于旗下公司。最流行的關系型數據庫管理系統,在應用方面是最好的,關系數據庫管理系統應用軟件之一。七是最新的修訂版本,年月由萬維網聯盟完成標準制定。 2015年,軟件開發界發生了很多變化。有很多流行的新語言發布了,也有很多重要的框架和工具發布了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺...
摘要:前端的工作更具有挑戰性,方向更多樣化假設我今年要入前端開發的坑這里強調前端是因為,現在很多,安卓開發加入大前端的這個稱呼。安卓版微信在截稿之前是大概的版本最新是并且持續了年不變,據說是為了穩定。 作者:Jay(滬江開發工程師)本文為原創文章,轉載請注明作者及出處 不好意思,沒有像其他公眾號一樣趕著發文章,每年到這個時候總有一大波什么今年前端預測,技術框架預測什么的。我這次寫這篇文針對的...
摘要:前端的工作更具有挑戰性,方向更多樣化假設我今年要入前端開發的坑這里強調前端是因為,現在很多,安卓開發加入大前端的這個稱呼。安卓版微信在截稿之前是大概的版本最新是并且持續了年不變,據說是為了穩定。 作者:Jay(滬江開發工程師)本文為原創文章,轉載請注明作者及出處 不好意思,沒有像其他公眾號一樣趕著發文章,每年到這個時候總有一大波什么今年前端預測,技術框架預測什么的。我這次寫這篇文針對的...
閱讀 2038·2021-10-08 10:05
閱讀 1882·2021-09-22 15:31
閱讀 3003·2021-09-22 15:13
閱讀 3478·2021-09-09 09:34
閱讀 2072·2021-09-03 10:46
閱讀 3113·2019-08-30 15:56
閱讀 1697·2019-08-30 15:53
閱讀 2351·2019-08-30 15:44