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

📄 fontchoice.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
字号:
if(!dojo._hasResource["dijit._editor.plugins.FontChoice"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dijit._editor.plugins.FontChoice"] = true;dojo.provide("dijit._editor.plugins.FontChoice");dojo.require("dijit._editor._Plugin");dojo.require("dijit.form.FilteringSelect");dojo.require("dojo.data.ItemFileReadStore");dojo.require("dojo.i18n");dojo.requireLocalization("dijit._editor", "FontChoice", null, "zh,pt,da,tr,ru,de,sv,ja,he,ROOT,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,it,hu");dojo.declare("dijit._editor.plugins.FontChoice",	dijit._editor._Plugin,	{		//	summary:		//		This plugin provides three dropdowns for setting font information in the editor		//		//	description:		//		The commands provided by this plugin are:		//		//		* fontName		//	|		Provides a dropdown to select from a list of generic font names		//		* fontSize		//	|		Provides a dropdown to select from a list of pre-defined font sizes		//		* formatBlock		//	|		Provides a dropdown to select from a list of styles		//  |		//		//		which can easily be added to an editor by including one or more of the above commands		//		in the `plugins` attribute as follows:		//		//	|	plugins="['fontName','fontSize',...]"		//		//		It is possible to override the default dropdown list by providing an Array for the `custom` property when		//		instantiating this plugin, e.g.		//		//	|	plugins="[{name:'dijit._editor.plugins.FontChoice', command:'fontName', custom:['Verdana','Myriad','Garamond']},...]"		//		//		Alternatively, for `fontName` only, `generic:true` may be specified to provide a dropdown with		//		[CSS generic font families](http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families)		//		//		Note that the editor is often unable to properly handle font styling information defined outside		//		the context of the current editor instance, such as pre-populated HTML.		_uniqueId: 0,		buttonClass: dijit.form.FilteringSelect,		_initButton: function(){			//TODO: would be nice to be able to handle comma-separated font lists and search within them			var cmd = this.command;			var names = this.custom ||			{				fontName: this.generic ? ["serif", "sans-serif", "monospace", "cursive", "fantasy"] : // CSS font-family generics					["Arial", "Times New Roman", "Comic Sans MS", "Courier New"],				fontSize: [1,2,3,4,5,6,7], // sizes according to the old HTML FONT SIZE				formatBlock: ["p", "h1", "h2", "h3", "pre"]			}[cmd];			var strings = dojo.i18n.getLocalization("dijit._editor", "FontChoice");			var items = dojo.map(names, function(value){				var name = strings[value] || value;				var label = name;				switch(cmd){				case "fontName":					label = "<div style='font-family: "+value+"'>" + name + "</div>";					break;				case "fontSize":					// we're stuck using the deprecated FONT tag to correspond with the size measurements used by the editor					label = "<font size="+value+"'>"+name+"</font>";					break;				case "formatBlock":					label = "<" + value + ">" + name + "</" + value + ">";				}				return { label: label, name: name, value: value };			});			items.push({label: "", name:"", value:""}); // FilteringSelect doesn't like unmatched blank strings			dijit._editor.plugins.FontChoice.superclass._initButton.apply(this,				[{ labelType: "html", labelAttr: "label", searchAttr: "name", store: new dojo.data.ItemFileReadStore(					{ data: { identifier: "value", items: items } })}]);			this.button.setValue("");			this.connect(this.button, "onChange", function(choice){				if(this.updating){ return; }				// FIXME: IE is really messed up here!!				if(dojo.isIE && "_savedSelection" in this){					var b = this._savedSelection;					delete this._savedSelection;					this.editor.focus();					this.editor._moveToBookmark(b);				}else{//					this.editor.focus();					dijit.focus(this._focusHandle);				}				if(this.command == "fontName" && choice.indexOf(" ") != -1){ choice = "'" + choice + "'"; }				this.editor.execCommand(this.editor._normalizeCommand(this.command), choice);			});		},		updateState: function(){			this.inherited(arguments);			var _e = this.editor;			var _c = this.command;			if(!_e || !_e.isLoaded || !_c.length){ return; }			if(this.button){				var value = _e.queryCommandValue(this.editor._normalizeCommand(_c)) || "";				// strip off single quotes, if any				var quoted = dojo.isString(value) && value.match(/'([^']*)'/);				if(quoted){ value = quoted[1]; }//console.log("selected " + value);				if(this.generic && _c == "fontName"){					var map = {						"Arial": "sans-serif",						"Helvetica": "sans-serif",						"Myriad": "sans-serif",						"Times": "serif",						"Times New Roman": "serif",						"Comic Sans MS": "cursive",						"Apple Chancery": "cursive",						"Courier": "monospace",						"Courier New": "monospace",						"Papyrus": "fantasy"// 						,"????": "fantasy" TODO: IE doesn't map fantasy font-family?					};//console.log("mapped to " + map[value]);					value = map[value] || value;				}else if(_c == "fontSize" && value.indexOf && value.indexOf("px") != -1){					var pixels = parseInt(value);					value = {10:1, 13:2, 16:3, 18:4, 24:5, 32:6, 48:7}[pixels] || value;				}				this.updating = true;				this.button.setValue(value);				delete this.updating;			}			// FIXME: IE is *really* b0rken			if(dojo.isIE){				this._savedSelection = this.editor._getBookmark();			}			this._focusHandle = dijit.getFocus(this.editor.iframe);		},		setToolbar: function(){			this.inherited(arguments);			var forRef = this.button;			if(!forRef.id){ forRef.id = dijit._scopeName+"EditorButton-"+this.command+(this._uniqueId++); } //TODO: is this necessary?  FilteringSelects always seem to have an id?			var label = dojo.doc.createElement("label");			dojo.addClass(label, "dijit dijitReset dijitLeft dijitInline");			label.setAttribute("for", forRef.id);			var strings = dojo.i18n.getLocalization("dijit._editor", "FontChoice");			label.appendChild(dojo.doc.createTextNode(strings[this.command]));			dojo.place(label, this.button.domNode, "before");		}	});dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){	if(o.plugin){ return; }	switch(o.args.name){	case "fontName": case "fontSize": case "formatBlock":		o.plugin = new dijit._editor.plugins.FontChoice({command: o.args.name});	}});}

⌨️ 快捷键说明

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