⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editor2toolbar.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.Editor2Toolbar");dojo.provide("dojo.widget.html.Editor2Toolbar");dojo.require("dojo.lang.*");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.widget.RichText");dojo.require("dojo.widget.ColorPalette");dojo.widget.defineWidget(	"dojo.widget.html.Editor2Toolbar",	dojo.widget.HtmlWidget,	{		commandList: [ "bold", "italic", "underline", "subscript", "superscript",			"fontname", "fontsize", "forecolor", "hilitecolor", "justifycenter",			"justifyfull", "justifyleft", "justifyright", "cut", "copy", "paste",			"delete", "undo", "redo", "createlink", "unlink", "removeformat",			"inserthorizontalrule", "insertimage", "insertorderedlist",			"insertunorderedlist", "indent", "outdent", "formatblock", "strikethrough", 			"inserthtml", "blockdirltr", "blockdirrtl", "dirltr", "dirrtl",			"inlinedirltr", "inlinedirrtl", "inserttable", "insertcell",			"insertcol", "insertrow", "deletecells", "deletecols", "deleterows",			"mergecells", "splitcell"		],		templatePath: dojo.uri.dojoUri("src/widget/templates/HtmlEditorToolbar.html"),		templateCssPath: dojo.uri.dojoUri("src/widget/templates/HtmlEditorToolbar.css"),		forecolorPalette: null,		hilitecolorPalette: null,		// DOM Nodes		wikiwordButton: null,		htmltoggleButton: null,		insertimageButton: null,		styleDropdownButton: null,		styleDropdownContainer: null,		copyButton: null,		boldButton: null,		italicButton: null,		underlineButton: null,		justifycenterButton: null,		justifyleftButton: null,		justifyfullButton: null,		justifyrightButton: null,		pasteButton: null,		undoButton: null,		redoButton: null,		linkButton: null,		insertunorderedlistButton: null,		insertorderedlistButton: null,		forecolorButton: null,		forecolorDropDown: null,		hilitecolorButton: null,		hilitecolorDropDown: null,		formatSelectBox: null,		inserthorizontalruleButton: null,		strikethroughButton: null,		clickInterceptDiv: null,		oneLineTr: null,		buttonClick: function(e){ e.preventDefault(); /* dojo.debug("buttonClick"); */ },		buttonMouseOver: function(e){  },		buttonMouseOut: function(e){  },		// event signals		preventSelect: function(e){ if(dojo.render.html.safari){ e.preventDefault(); } },		wikiwordClick: function(){ },		insertimageClick: function(){ },		htmltoggleClick: function(){ },		styleDropdownClick: function(){			dojo.debug("styleDropdownClick:", this.styleDropdownContainer);			dojo.style.toggleShowing(this.styleDropdownContainer);		},		copyClick: function(){ this.exec("copy"); },		boldClick: function(){ this.exec("bold"); },		italicClick: function(){ this.exec("italic"); },		underlineClick: function(){ this.exec("underline"); },		justifyleftClick: function(){ this.exec("justifyleft"); },		justifycenterClick: function(){ this.exec("justifycenter"); },		justifyfullClick: function(){ this.exec("justifyfull"); },		justifyrightClick: function(){ this.exec("justifyright"); },		pasteClick: function(){ this.exec("paste"); },		undoClick: function(){ this.exec("undo"); },		redoClick: function(){ this.exec("redo"); },		linkClick: function(){ 			// FIXME: we need to alert the user if they haven't selected any text			// this.exec(	"createlink", 			// 			prompt("Please enter the URL of the link:", "http://"));		},		insertunorderedlistClick: function(){ this.exec("insertunorderedlist"); },		insertorderedlistClick: function(){ this.exec("insertorderedlist"); },		inserthorizontalruleClick: function(){ this.exec("inserthorizontalrule"); },		strikethroughClick: function(){ this.exec("strikethrough"); },		formatSelectClick: function(){ 			var sv = this.formatSelectBox.value.toLowerCase();			this.exec("formatblock", sv);		},		normalTextClick: function(){ this.exec("formatblock", "p"); },		h1TextClick: function(){ this.exec("formatblock", "h1"); },		h2TextClick: function(){ this.exec("formatblock", "h2"); },		h3TextClick: function(){ this.exec("formatblock", "h3"); },		h4TextClick: function(){ this.exec("formatblock", "h4"); },		indentClick: function(){ this.exec("indent"); },		outdentClick: function(){ this.exec("outdent"); },		hideAllDropDowns: function(){			this.domNode.style.height = "";			dojo.lang.forEach(dojo.widget.byType("Editor2Toolbar"), function(tb){				try{					dojo.style.hide(tb.forecolorDropDown);					dojo.style.hide(tb.hilitecolorDropDown);					dojo.style.hide(tb.styleDropdownContainer);					if(tb.clickInterceptDiv){						dojo.style.hide(tb.clickInterceptDiv);					}				}catch(e){}				if(dojo.render.html.ie){					try{						dojo.style.hide(tb.forecolorPalette.bgIframe);					}catch(e){}					try{						dojo.style.hide(tb.hilitecolorPalette.bgIframe);					}catch(e){}				}			});		},		selectFormat: function(format){			dojo.lang.forEach(this.formatSelectBox.options, function(item){				if(item.value.toLowerCase() == format.toLowerCase()){					item.selected = true;				}			});		},		forecolorClick: function(e){			this.colorClick(e, "forecolor");		},		hilitecolorClick: function(e){			this.colorClick(e, "hilitecolor");		},		// FIXME: these methods aren't currently dealing with clicking in the		// general document to hide the menu		colorClick: function(e, type){			var h = dojo.render.html;			this.hideAllDropDowns();			// FIXME: if we've been "popped out", we need to set the height of the toolbar.			e.stopPropagation();			var dd = this[type+"DropDown"];			var pal = this[type+"Palette"];			dojo.style.toggleShowing(dd);			if(!pal){				pal = this[type+"Palette"] = dojo.widget.createWidget("ColorPalette", {}, dd, "first");				var fcp = pal.domNode;				with(dd.style){					width = dojo.html.getOuterWidth(fcp) + "px";					height = dojo.html.getOuterHeight(fcp) + "px";					zIndex = 1002;					position = "absolute";				}				dojo.event.connect(	"after",									pal, "onColorSelect",									this, "exec",									function(mi){ mi.args.unshift(type); return mi.proceed(); }				);				dojo.event.connect(	"after",									pal, "onColorSelect",									dojo.style, "toggleShowing",									this, function(mi){ mi.args.unshift(dd); return mi.proceed(); }				);				var cid = this.clickInterceptDiv;				if(!cid){					cid = this.clickInterceptDiv = document.createElement("div");					document.body.appendChild(cid);					with(cid.style){						backgroundColor = "transparent";						top = left = "0px";						height = width = "100%";						position = "absolute";						border = "none";						display = "none";						zIndex = 1001;					}					dojo.event.connect(cid, "onclick", function(){ cid.style.display = "none"; });				}				dojo.event.connect(pal, "onColorSelect", function(){ cid.style.display = "none"; });				dojo.event.kwConnect({					srcObj:		document.body, 					srcFunc:	"onclick", 					targetObj:	this,					targetFunc:	"hideAllDropDowns",					once:		true				});				document.body.appendChild(dd);			}			dojo.style.toggleShowing(this.clickInterceptDiv);			var pos = dojo.style.abs(this[type+"Button"]);			dojo.html.placeOnScreenPoint(dd, pos.x, pos.y, 0, false);			if(pal.bgIframe){				with(pal.bgIframe.style){					display = "block";					left = dd.style.left;					top = dd.style.top;					width = dojo.style.getOuterWidth(dd)+"px";					height = dojo.style.getOuterHeight(dd)+"px";				}			}		},		uninitialize: function(){			if(!dojo.render.html.ie){				// apparently this causes leakage on IE!				dojo.event.kwDisconnect({					srcObj:		document.body, 					srcFunc:	"onclick", 					targetObj:	this,					targetFunc:	"hideAllDropDowns",					once:		true				});			}		},		// stub for observers		exec: function(what, arg){ /* dojo.debug(what, new Date()); */ },		hideUnusableButtons: function(obj){			var op = obj||dojo.widget.html.RichText.prototype;			dojo.lang.forEach(this.commandList,				function(cmd){					if(this[cmd+"Button"]){						var cb = this[cmd+"Button"];						if(!op.queryCommandAvailable(cmd)){							cb.style.display = "none";							cb.parentNode.style.display = "none";						}					}				},				this);				if(this.oneLineTr){					var lastVisibleIsSpacer = false;					var lastVisible = false;					var tds = this.oneLineTr.getElementsByTagName("td");					dojo.lang.forEach(tds, function(td){						if(td.getAttribute("isSpacer")){							if(td.style.display != "none"){								if(lastVisibleIsSpacer){									td.style.display = "none";								}								lastVisibleIsSpacer = true;							}else{								lastVisible = td;								lastVisibleIsSpacer = true;							}						}else{							if(td.style.display != "none"){								lastVisible = td;								lastVisibleIsSpacer = false;							}						}					});				}		},		highlightButton: function(name){			var bn = name+"Button";			if(this[bn]){				with(this[bn].style){					backgroundColor = "White";					border = "1px solid #aeaeab";				}			}		},		unhighlightButton: function(name){			var bn = name+"Button";			if(this[bn]){				// dojo.debug("unhighlighting:", name);				with(this[bn].style){					backgroundColor = "";					border = "";				}			}		}	},	"html",	function(){		// dojo.event.connect(this, "fillInTemplate", this, "hideUnusableButtons");		dojo.event.connect(this, "fillInTemplate", dojo.lang.hitch(this, function(){			if(dojo.render.html.ie){				this.domNode.style.zoom = 1.0;			}		}));	});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -