亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htmlarea.js

?? javascript寫的在線編輯器
?? JS
?? 第 1 頁 / 共 5 頁
字號:
	function createSelect(txt) {		var options = null;		var el = null;		var cmd = null;		var customSelects = editor.config.customSelects;		var context = null;		switch (txt) {		    case "fontsize":		    case "fontname":		    case "formatblock":			// the following line retrieves the correct			// configuration option because the variable name			// inside the Config object is named the same as the			// button/select in the toolbar.  For instance, if txt			// == "formatblock" we retrieve config.formatblock (or			// a different way to write it in JS is			// config["formatblock"].			options = editor.config[txt];			cmd = txt;			break;		    default:			// try to fetch it from the list of registered selects			cmd = txt;			var dropdown = customSelects[cmd];			if (typeof dropdown != "undefined") {				options = dropdown.options;				context = dropdown.context;			} else {				alert("ERROR [createSelect]:\nCan't find the requested dropdown definition");			}			break;		}		if (options) {			el = document.createElement("select");			var obj = {				name	: txt, // field name				element : el,	// the UI element (SELECT)				enabled : true, // is it enabled?				text	: false, // enabled in text mode?				cmd	: cmd, // command ID				state	: setButtonStatus, // for changing state				context : context			};			tb_objects[txt] = obj;			for (var i in options) {				var op = document.createElement("option");				op.appendChild(document.createTextNode(i));				op.value = options[i];				el.appendChild(op);			}			HTMLArea._addEvent(el, "change", function () {				editor._comboSelected(el, txt);			});		}		return el;	}; // END of function: createSelect	// appends a new button to toolbar	function createButton(txt) {		// the element that will be created		var el = null;		var btn = null;		switch (txt) {		    case "separator":			el = document.createElement("div");			el.className = "separator";			break;		    case "space":			el = document.createElement("div");			el.className = "space";			break;		    case "linebreak":			newLine();			return false;		    case "textindicator":			el = document.createElement("div");			el.appendChild(document.createTextNode("A"));			el.className = "indicator";			el.title = HTMLArea.I18N.tooltips.textindicator;			var obj = {				name	: txt, // the button name (i.e. 'bold')				element : el, // the UI element (DIV)				enabled : true, // is it enabled?				active	: false, // is it pressed?				text	: false, // enabled in text mode?				cmd	: "textindicator", // the command ID				state	: setButtonStatus // for changing state			};			tb_objects[txt] = obj;			break;		    default:			btn = editor.config.btnList[txt];		}		if (!el && btn) {			el = document.createElement("div");			el.title = btn[0];			el.className = "button";			// let's just pretend we have a button object, and			// assign all the needed information to it.			var obj = {				name	: txt, // the button name (i.e. 'bold')				element : el, // the UI element (DIV)				enabled : true, // is it enabled?				active	: false, // is it pressed?				text	: btn[2], // enabled in text mode?				cmd	: btn[3], // the command ID				state	: setButtonStatus, // for changing state				context : btn[4] || null // enabled in a certain context?			};			tb_objects[txt] = obj;			// handlers to emulate nice flat toolbar buttons			HTMLArea._addEvent(el, "mouseover", function () {				if (obj.enabled) {					HTMLArea._addClass(el, "buttonHover");				}			});			HTMLArea._addEvent(el, "mouseout", function () {				if (obj.enabled) with (HTMLArea) {					_removeClass(el, "buttonHover");					_removeClass(el, "buttonActive");					(obj.active) && _addClass(el, "buttonPressed");				}			});			HTMLArea._addEvent(el, "mousedown", function (ev) {				if (obj.enabled) with (HTMLArea) {					_addClass(el, "buttonActive");					_removeClass(el, "buttonPressed");					_stopEvent(is_ie ? window.event : ev);				}			});			// when clicked, do the following:			HTMLArea._addEvent(el, "click", function (ev) {				if (obj.enabled) with (HTMLArea) {					_removeClass(el, "buttonActive");					_removeClass(el, "buttonHover");					obj.cmd(editor, obj.name, obj);					_stopEvent(is_ie ? window.event : ev);				}			});			var img = document.createElement("img");			img.src = btn[1];			img.style.width = "18px";			img.style.height = "18px";			el.appendChild(img);		} else if (!el) {			el = createSelect(txt);		}		if (el) {			var tb_cell = document.createElement("td");			tb_row.appendChild(tb_cell);			tb_cell.appendChild(el);		} else {			alert("FIXME: Unknown toolbar item: " + txt);		}		return el;	};	var first = true;	for (var i in this.config.toolbar) {		if (!first) {			createButton("linebreak");		} else {			first = false;		}		var group = this.config.toolbar[i];		for (var j in group) {			var code = group[j];			if (/^([IT])\[(.*?)\]/.test(code)) {				// special case, create text label				var l7ed = RegExp.$1 == "I"; // localized?				var label = RegExp.$2;				if (l7ed) {					label = HTMLArea.I18N.custom[label];				}				var tb_cell = document.createElement("td");				tb_row.appendChild(tb_cell);				tb_cell.className = "label";				tb_cell.innerHTML = label;			} else {				createButton(code);			}		}	}	this._htmlArea.appendChild(toolbar);};HTMLArea.prototype._createStatusBar = function() {	var statusbar = document.createElement("div");	statusbar.className = "statusBar";	this._htmlArea.appendChild(statusbar);	this._statusBar = statusbar;	// statusbar.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"] + ": "));	// creates a holder for the path view	div = document.createElement("span");	div.className = "statusBarTree";	div.innerHTML = HTMLArea.I18N.msg["Path"] + ": ";	this._statusBarTree = div;	this._statusBar.appendChild(div);	if (!this.config.statusBar) {		// disable it...		statusbar.style.display = "none";	}};// Creates the HTMLArea object and replaces the textarea with it.HTMLArea.prototype.generate = function () {	var editor = this;	// we'll need "this" in some nested functions	// get the textarea	var textarea = this._textArea;	if (typeof textarea == "string") {		// it's not element but ID		this._textArea = textarea = HTMLArea.getElementById("textarea", textarea);	}	this._ta_size = {		w: textarea.offsetWidth,		h: textarea.offsetHeight	};	textarea.style.display = "none";	// create the editor framework	var htmlarea = document.createElement("div");	htmlarea.className = "htmlarea";	this._htmlArea = htmlarea;	// insert the editor before the textarea.	textarea.parentNode.insertBefore(htmlarea, textarea);	if (textarea.form) {		// we have a form, on submit get the HTMLArea content and		// update original textarea.		var f = textarea.form;		if (typeof f.onsubmit == "function") {			var funcref = f.onsubmit;			if (typeof f.__msh_prevOnSubmit == "undefined") {				f.__msh_prevOnSubmit = [];			}			f.__msh_prevOnSubmit.push(funcref);		}		f.onsubmit = function() {			editor._textArea.value = editor.getHTML();			var a = this.__msh_prevOnSubmit;			// call previous submit methods if they were there.			if (typeof a != "undefined") {				for (var i in a) {					a[i]();				}			}		};	}	// add a handler for the "back/forward" case -- on body.unload we save	// the HTML content into the original textarea.	window.onunload = function() {		editor._textArea.value = editor.getHTML();	};	// creates & appends the toolbar	this._createToolbar();	// create the IFRAME	var iframe = document.createElement("iframe");	htmlarea.appendChild(iframe);	this._iframe = iframe;	// creates & appends the status bar, if the case	this._createStatusBar();	// remove the default border as it keeps us from computing correctly	// the sizes.  (somebody tell me why doesn't this work in IE)	if (!HTMLArea.is_ie) {		iframe.style.borderWidth = "1px";	// iframe.frameBorder = "1";	// iframe.marginHeight = "0";	// iframe.marginWidth = "0";	}	// size the IFRAME according to user's prefs or initial textarea	var height = (this.config.height == "auto" ? (this._ta_size.h + "px") : this.config.height);	height = parseInt(height);	var width = (this.config.width == "auto" ? (this._ta_size.w + "px") : this.config.width);	width = parseInt(width);	if (!HTMLArea.is_ie) {		height -= 2;		width -= 2;	}	iframe.style.width = width + "px";	if (this.config.sizeIncludesToolbar) {		// substract toolbar height		height -= this._toolbar.offsetHeight;		height -= this._statusBar.offsetHeight;	}	if (height < 0) {		height = 0;	}	iframe.style.height = height + "px";	// the editor including the toolbar now have the same size as the	// original textarea.. which means that we need to reduce that a bit.	textarea.style.width = iframe.style.width; 	textarea.style.height = iframe.style.height;	// IMPORTANT: we have to allow Mozilla a short time to recognize the	// new frame.  Otherwise we get a stupid exception.	function initIframe() {		var doc = editor._iframe.contentWindow.document;		if (!doc) {			// Try again..			// FIXME: don't know what else to do here.  Normally			// we'll never reach this point.			if (HTMLArea.is_gecko) {				setTimeout(initIframe, 100);				return false;			} else {				alert("ERROR: IFRAME can't be initialized.");			}		}		if (HTMLArea.is_gecko) {			// enable editable mode for Mozilla			doc.designMode = "on";		}		editor._doc = doc;		if (!editor.config.fullPage) {			doc.open();			var html = "<html>\n";			html += "<head>\n";			if (editor.config.baseURL)				html += '<base href="' + editor.config.baseURL + '" />';			html += "<style> html,body { border: 0px; } " +				editor.config.pageStyle + "</style>\n";			html += "</head>\n";			html += "<body>\n";			html += editor._textArea.value;			html += "</body>\n";			html += "</html>";			doc.write(html);			doc.close();		} else {			var html = editor._textArea.value;			if (html.match(HTMLArea.RE_doctype)) {				editor.setDoctype(RegExp.$1);				html = html.replace(HTMLArea.RE_doctype, "");			}			doc.open();			doc.write(html);			doc.close();		}		if (HTMLArea.is_ie) {			// enable editable mode for IE.	 For some reason this			// doesn't work if done in the same place as for Gecko			// (above).			doc.body.contentEditable = true;		}		editor.focusEditor();		// intercept some events; for updating the toolbar & keyboard handlers		HTMLArea._addEvents			(doc, ["keydown", "keypress", "mousedown", "mouseup", "drag"],			 function (event) {				 return editor._editorEvent(HTMLArea.is_ie ? editor._iframe.contentWindow.event : event);			 });		// check if any plugins have registered refresh handlers		for (var i in editor.plugins) {			var plugin = editor.plugins[i].instance;			if (typeof plugin.onGenerate == "function")				plugin.onGenerate();		}		setTimeout(function() {			editor.updateToolbar();		}, 250);		if (typeof editor.onGenerate == "function")			editor.onGenerate();	};	setTimeout(initIframe, 100);};// Switches editor mode; parameter can be "textmode" or "wysiwyg".  If no// parameter was passed this function toggles between modes.HTMLArea.prototype.setMode = function(mode) {	if (typeof mode == "undefined") {		mode = ((this._editMode == "textmode") ? "wysiwyg" : "textmode");	}	switch (mode) {	    case "textmode":		this._textArea.value = this.getHTML();		this._iframe.style.display = "none";		this._textArea.style.display = "block";		if (this.config.statusBar) {			this._statusBar.innerHTML = HTMLArea.I18N.msg["TEXT_MODE"];		}		break;	    case "wysiwyg":		if (HTMLArea.is_gecko) {			// disable design mode before changing innerHTML			try {				this._doc.designMode = "off";			} catch(e) {};		}		if (!this.config.fullPage)			this._doc.body.innerHTML = this.getHTML();		else			this.setFullHTML(this.getHTML());		this._iframe.style.display = "block";

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bt欧美bt精品777| 欧美在线免费播放| 国产一区二区剧情av在线| 视频在线观看一区| 亚洲福中文字幕伊人影院| 亚洲精品菠萝久久久久久久| 亚洲同性同志一二三专区| 中文乱码免费一区二区| 国产精品理论在线观看| 中文字幕一区二区三中文字幕| 欧美极品另类videosde| 中文字幕色av一区二区三区| 中文字幕制服丝袜成人av| 国产精品入口麻豆九色| 亚洲国产精品t66y| 亚洲欧美在线视频观看| 亚洲人成网站影音先锋播放| 亚洲一区二区五区| 日韩不卡在线观看日韩不卡视频| 婷婷亚洲久悠悠色悠在线播放| 偷拍与自拍一区| 蜜臀av在线播放一区二区三区 | 国产真实乱对白精彩久久| 麻豆国产精品官网| 国内国产精品久久| aaa亚洲精品一二三区| 色婷婷一区二区三区四区| 欧美老年两性高潮| 久久久久久久免费视频了| 久久久久国产免费免费| 亚洲欧洲精品成人久久奇米网| 一级做a爱片久久| 日韩黄色在线观看| 国产精品123区| 色94色欧美sute亚洲13| 日韩欧美一区二区三区在线| 久久久久久久久97黄色工厂| 最新不卡av在线| 视频一区二区中文字幕| 国产福利一区二区三区在线视频| av男人天堂一区| 欧美喷潮久久久xxxxx| 久久夜色精品国产噜噜av| 国产精品视频一区二区三区不卡| 亚洲精品国久久99热| 日本女人一区二区三区| 粉嫩av一区二区三区在线播放| 91精品福利视频| 欧美精品一区二区三区蜜桃| 亚洲柠檬福利资源导航| 七七婷婷婷婷精品国产| 成人的网站免费观看| 欧美丰满高潮xxxx喷水动漫| 亚洲国产精品传媒在线观看| 日韩精品国产欧美| jvid福利写真一区二区三区| 欧美一区二区三区在线视频| 中文字幕一区二区三区不卡在线 | 国产精品99久久久久久宅男| 在线观看免费视频综合| 2022国产精品视频| 亚洲成人黄色小说| 波多野结衣中文字幕一区二区三区| 欧美精品一二三| 一区精品在线播放| 精品一区二区精品| 欧美图区在线视频| 国产精品不卡视频| 韩国女主播成人在线| 欧美三级韩国三级日本一级| 中文字幕欧美三区| 久久99九九99精品| 欧美午夜电影在线播放| 国产精品久久午夜| 国产经典欧美精品| 日韩一区二区不卡| 一区二区高清免费观看影视大全| 国产麻豆一精品一av一免费| 欧美一区二区三区性视频| 亚洲卡通动漫在线| 从欧美一区二区三区| 欧美tk—视频vk| 五月天精品一区二区三区| 一本一道波多野结衣一区二区 | 日韩av一区二区三区四区| 91美女在线看| 国产精品国模大尺度视频| 国产精品资源在线| 欧美zozo另类异族| 美国精品在线观看| 欧美一区在线视频| 亚洲国产综合色| 91久久精品国产91性色tv| 中文字幕一区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美日韩视频一区二区| 亚洲日本在线看| 99久久99久久精品免费看蜜桃| 国产精品污网站| 国产99精品视频| 国产亚洲视频系列| 国产盗摄视频一区二区三区| 久久久精品免费免费| 国产a区久久久| 国产精品沙发午睡系列990531| 国产成人免费在线观看| 久久精品视频一区二区三区| 国产剧情在线观看一区二区| 久久五月婷婷丁香社区| 国产乱妇无码大片在线观看| 国产欧美视频一区二区| 成人做爰69片免费看网站| 中文一区二区完整视频在线观看| 成人永久免费视频| 成人欧美一区二区三区视频网页 | 欧美色涩在线第一页| 亚洲丰满少妇videoshd| 欧美日韩一区二区欧美激情| 日韩福利电影在线| 日韩免费高清av| 国产一区二区成人久久免费影院| 久久精品亚洲一区二区三区浴池| 风间由美性色一区二区三区| 国产精品国产三级国产普通话99 | 精品人伦一区二区色婷婷| 久久爱另类一区二区小说| 久久九九99视频| 99久久99久久免费精品蜜臀| 亚洲高清三级视频| 欧美一区二区在线观看| 国产精品一二三区在线| 中文字幕一区二区三区在线不卡 | 日韩高清不卡一区二区| 久久影视一区二区| 成人午夜视频福利| 亚洲精品国产无天堂网2021| 欧美一区二区成人| 国产成人免费在线视频| 亚洲精品中文在线观看| 正在播放亚洲一区| 国产99久久久国产精品免费看| 一区二区三区 在线观看视频| 欧美精品色一区二区三区| 国产在线观看一区二区| 亚洲欧美偷拍卡通变态| 日韩免费福利电影在线观看| av不卡在线观看| 伦理电影国产精品| 亚洲日本青草视频在线怡红院 | 性感美女久久精品| 久久精品网站免费观看| 欧美性受xxxx黑人xyx| 国产呦精品一区二区三区网站| 亚洲视频一区在线观看| 日韩欧美在线网站| 99国产精品久| 久久se精品一区精品二区| 亚洲男同性恋视频| 久久久久久免费网| 欧美另类久久久品| 成人高清伦理免费影院在线观看| 日韩av不卡在线观看| 亚洲女同女同女同女同女同69| 精品国产乱码久久久久久牛牛| 色诱视频网站一区| 国产一区二区三区蝌蚪| 亚洲成人动漫在线观看| 国产精品少妇自拍| 欧美大片日本大片免费观看| 91蝌蚪porny成人天涯| 国产一区二区91| 五月天国产精品| 亚洲精品大片www| 中文在线一区二区| 2020国产精品自拍| 欧美精品日韩精品| 在线亚洲精品福利网址导航| 国产传媒日韩欧美成人| 精品制服美女丁香| 天堂va蜜桃一区二区三区| 亚洲色图清纯唯美| 欧美国产97人人爽人人喊| 精品国产乱码久久久久久免费| 欧美精品18+| 欧亚洲嫩模精品一区三区| 高清av一区二区| 精品制服美女丁香| 麻豆精品一区二区综合av| 亚洲高清免费观看| 亚洲狼人国产精品| 亚洲区小说区图片区qvod| 国产欧美一区二区精品忘忧草| 欧美videos大乳护士334| 欧美疯狂性受xxxxx喷水图片| 精品视频一区三区九区| 一本大道av伊人久久综合| 91视频一区二区| av亚洲产国偷v产偷v自拍| 国产福利精品一区| 国产精品一区二区久久不卡|