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

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

?? htmlarea.js

?? SSCMS網站管理系統 飛狐源碼站 SSCMS可以將網站內容全部生成靜態HTML文件,這樣可以極大地節約主機資源
?? JS
?? 第 1 頁 / 共 5 頁
字號:
					HTMLArea._addClass(el, "buttonPressed");
				} else {
					HTMLArea._removeClass(el, "buttonPressed");
				}
				break;
			}
			this[id] = newval;
		}
	}; // END of function: setButtonStatus

	// this function will handle creation of combo boxes.  Receives as
	// parameter the name of a button as defined in the toolBar config.
	// This function is called from createButton, above, if the given "txt"
	// doesn't match a button.
	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";
	iframe.style.width = width;
	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);
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频在线视频| 一区二区三区欧美久久| 日韩午夜激情免费电影| 欧日韩精品视频| 欧美视频第二页| 精品国偷自产国产一区| 欧美精品123区| 亚洲另类在线一区| 六月婷婷色综合| 国产精品主播直播| 欧美午夜寂寞影院| 中文字幕一区三区| 日韩电影在线一区二区| 色狠狠色狠狠综合| 一区二区三区在线视频观看 | 蜜臀av一区二区| 99久久久精品| 日韩精品一区二区在线观看| 洋洋av久久久久久久一区| 成人免费视频视频在线观看免费| 欧美日韩一区三区| 丝袜a∨在线一区二区三区不卡| 欧美午夜在线观看| 亚洲制服丝袜一区| 色香蕉成人二区免费| 亚洲欧洲日韩在线| 欧美性猛交xxxx乱大交退制版 | 国内精品在线播放| 国产亚洲一区二区在线观看| 日韩精品电影在线观看| 欧美日韩不卡在线| 美女视频免费一区| 日韩欧美综合一区| 国产高清精品网站| 一区二区三区不卡视频| 91蜜桃传媒精品久久久一区二区| 久久久久久久久97黄色工厂| 国产精品18久久久久久久网站| 久久先锋资源网| gogo大胆日本视频一区| 一区二区三区在线视频免费观看| 欧美日韩国产一级| 风流少妇一区二区| 五月婷婷久久综合| 国产精品乱码一区二区三区软件| 精品视频在线免费看| 国产999精品久久久久久绿帽| 亚洲成年人网站在线观看| 国产丝袜在线精品| 欧美高清性hdvideosex| 国产成人一级电影| 国产黄人亚洲片| 老司机免费视频一区二区| 夜夜亚洲天天久久| 亚洲综合在线第一页| 中文字幕在线不卡一区二区三区| 欧美性视频一区二区三区| 国模一区二区三区白浆| 亚洲一区在线观看免费| 亚洲一区二区在线免费观看视频 | 久久九九99视频| 欧美电影免费观看高清完整版在线观看 | 中文字幕一区二区三区色视频 | 色狠狠一区二区三区香蕉| 亚洲午夜视频在线| 香蕉久久夜色精品国产使用方法| 国产精品毛片高清在线完整版| 26uuu欧美| 久久婷婷一区二区三区| 欧美国产1区2区| 中文字幕综合网| 午夜a成v人精品| 九色|91porny| 91丨porny丨国产| 欧美精品亚洲一区二区在线播放| 日韩手机在线导航| 中文字幕中文乱码欧美一区二区| 亚洲国产一区视频| 国产最新精品免费| 色婷婷亚洲一区二区三区| 欧美色中文字幕| 精品国产sm最大网站| 亚洲视频一区二区在线观看| 日韩黄色免费电影| 91玉足脚交白嫩脚丫在线播放| 欧美一区二区福利在线| 一区二区久久久久久| 激情都市一区二区| 欧美一区二区成人| 亚洲黄网站在线观看| 懂色av一区二区三区免费看| 日韩视频免费观看高清完整版| 欧美国产国产综合| 国产一区二区三区免费在线观看| 欧美性一二三区| 亚洲va天堂va国产va久| 99久久婷婷国产综合精品电影| 国产日韩综合av| 蜜臀av一区二区在线免费观看| 在线观看日韩国产| 亚洲伊人色欲综合网| jizzjizzjizz欧美| 日韩二区三区四区| 欧美一区二区成人6969| 久久国产生活片100| 中文文精品字幕一区二区| 国产电影一区在线| 国产精品国产自产拍高清av王其| 波多野结衣欧美| 久久在线免费观看| 久久狠狠亚洲综合| 1000精品久久久久久久久| 成人一区二区三区| 国产精品福利在线播放| 欧美裸体一区二区三区| 国产在线麻豆精品观看| 国产精品久久久久毛片软件| 波波电影院一区二区三区| 午夜亚洲福利老司机| 26uuu亚洲婷婷狠狠天堂| 在线一区二区三区| 国产精品1区2区3区在线观看| 亚洲图片有声小说| 国产欧美日本一区视频| 91精品国产入口| 国产传媒一区在线| 日韩国产精品久久久| 亚洲资源中文字幕| 国产精品精品国产色婷婷| 久久久av毛片精品| 欧美精品在线观看一区二区| 99精品欧美一区| 成人高清视频在线观看| 国产毛片精品视频| 亚洲.国产.中文慕字在线| 日韩综合在线视频| 奇米777欧美一区二区| 日本sm残虐另类| 日本最新不卡在线| 精品亚洲国内自在自线福利| 精品一区二区免费视频| 精品午夜久久福利影院 | 99久久免费精品| 在线观看成人免费视频| 在线欧美一区二区| 56国语精品自产拍在线观看| 6080亚洲精品一区二区| 国产午夜精品福利| 日韩一区二区在线观看视频| 69堂精品视频| 91丝袜美腿高跟国产极品老师 | 亚洲精品乱码久久久久久日本蜜臀| 91精品综合久久久久久| 久久99热99| 日韩美女视频在线| 青青草97国产精品免费观看| 另类小说一区二区三区| 美女视频黄免费的久久| 99视频一区二区| 精品久久久久香蕉网| 最新久久zyz资源站| 另类专区欧美蜜桃臀第一页| 色先锋资源久久综合| www日韩大片| 日本美女一区二区三区| 91丝袜国产在线播放| 欧美国产精品v| 九一久久久久久| 精品免费99久久| 免费看欧美美女黄的网站| 色先锋aa成人| 亚洲老妇xxxxxx| 色噜噜狠狠一区二区三区果冻| 欧美国产精品v| 国产福利一区二区| 欧美精品一区二区高清在线观看 | 国产成人鲁色资源国产91色综 | 欧美日韩免费在线视频| 亚洲人成网站色在线观看| 99久免费精品视频在线观看| 久久久99精品免费观看| 国产v综合v亚洲欧| 亚洲欧美日韩电影| 51午夜精品国产| 黑人巨大精品欧美黑白配亚洲| 欧美精品一区二区久久久| 99久久亚洲一区二区三区青草| 中文字幕一区不卡| 欧美日韩在线播放| 理论电影国产精品| 亚洲免费成人av| 精品美女在线播放| 粉嫩欧美一区二区三区高清影视| 国产日产欧美一区| 欧美电影一区二区| 国产成人精品一区二| 亚洲成人资源网| 中文字幕av一区二区三区| 91精品福利在线一区二区三区 | 91视频.com|