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

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

?? context-menu.js

?? 帝國CMS,功能全面的CMS源碼,下載試用下
?? JS
字號:
// Context Menu Plugin for HTMLArea-3.0// Sponsored by www.americanbible.org// Implementation by Mihai Bazon, http://dynarch.com/mishoo///// (c) dynarch.com 2003.// Distributed under the same terms as HTMLArea itself.// This notice MUST stay intact for use (see license.txt).//// $Id: context-menu.js,v 1.2 2003/12/05 09:17:02 mishoo Exp $HTMLArea.loadStyle("menu.css", "ContextMenu");function ContextMenu(editor) {	this.editor = editor;};ContextMenu._pluginInfo = {	name          : "ContextMenu",	version       : "1.0",	developer     : "Mihai Bazon",	developer_url : "http://dynarch.com/mishoo/",	c_owner       : "dynarch.com",	sponsor       : "American Bible Society",	sponsor_url   : "http://www.americanbible.org",	license       : "htmlArea"};ContextMenu.prototype.onGenerate = function() {	var self = this;	var doc = this.editordoc = this.editor._iframe.contentWindow.document;	HTMLArea._addEvents(doc, ["contextmenu"],			    function (event) {				    return self.popupMenu(HTMLArea.is_ie ? self.editor._iframe.contentWindow.event : event);			    });	this.currentMenu = null;};ContextMenu.prototype.getContextMenu = function(target) {	var self = this;	var editor = this.editor;	var config = editor.config;	var menu = [];	var tbo = this.editor.plugins.TableOperations;	if (tbo) tbo = tbo.instance;	var i18n = ContextMenu.I18N;	var selection = editor.hasSelectedText();	if (selection)		menu.push([ i18n["Cut"], function() { editor.execCommand("cut"); }, null, config.btnList["cut"][1] ],			  [ i18n["Copy"], function() { editor.execCommand("copy"); }, null, config.btnList["copy"][1] ]);	menu.push([ i18n["Paste"], function() { editor.execCommand("paste"); }, null, config.btnList["paste"][1] ]);	var currentTarget = target;	var elmenus = [];	var link = null;	var table = null;	var tr = null;	var td = null;	var img = null;	function tableOperation(opcode) {		tbo.buttonPress(editor, opcode);	};	for (; target; target = target.parentNode) {		var tag = target.tagName;		if (!tag)			continue;		tag = tag.toLowerCase();		switch (tag) {		    case "img":			img = target;			elmenus.push(null,				     [ i18n["Image Properties"],				       function() {					       editor._insertImage(img);				       },				       i18n["Show the image properties dialog"],				       config.btnList["insertimage"][1] ]				);			break;		    case "a":			link = target;			elmenus.push(null,				     [ i18n["Modify Link"],				       function() { editor.execCommand("createlink", true); },				       i18n["Current URL is"] + ': ' + link.href,				       config.btnList["createlink"][1] ],				     [ i18n["Check Link"],				       function() { window.open(link.href); },				       i18n["Opens this link in a new window"] ],				     [ i18n["Remove Link"],				       function() {					       if (confirm(i18n["Please confirm that you want to unlink this element."] + "\n" +							   i18n["Link points to:"] + " " + link.href)) {						       while (link.firstChild)							       link.parentNode.insertBefore(link.firstChild, link);						       link.parentNode.removeChild(link);					       }				       },				       i18n["Unlink the current element"] ]				);			break;		    case "td":			td = target;			if (!tbo) break;			elmenus.push(null,				     [ i18n["Cell Properties"],				       function() { tableOperation("TO-cell-prop"); },				       i18n["Show the Table Cell Properties dialog"],				       config.btnList["TO-cell-prop"][1] ]				);			break;		    case "tr":			tr = target;			if (!tbo) break;			elmenus.push(null,				     [ i18n["Row Properties"],				       function() { tableOperation("TO-row-prop"); },				       i18n["Show the Table Row Properties dialog"],				       config.btnList["TO-row-prop"][1] ],				     [ i18n["Insert Row Before"],				       function() { tableOperation("TO-row-insert-above"); },				       i18n["Insert a new row before the current one"],				       config.btnList["TO-row-insert-above"][1] ],				     [ i18n["Insert Row After"],				       function() { tableOperation("TO-row-insert-under"); },				       i18n["Insert a new row after the current one"],				       config.btnList["TO-row-insert-under"][1] ],				     [ i18n["Delete Row"],				       function() { tableOperation("TO-row-delete"); },				       i18n["Delete the current row"],				       config.btnList["TO-row-delete"][1] ]				);			break;		    case "table":			table = target;			if (!tbo) break;			elmenus.push(null,				     [ i18n["Table Properties"],				       function() { tableOperation("TO-table-prop"); },				       i18n["Show the Table Properties dialog"],				       config.btnList["TO-table-prop"][1] ],				     [ i18n["Insert Column Before"],				       function() { tableOperation("TO-col-insert-before"); },				       i18n["Insert a new column before the current one"],				       config.btnList["TO-col-insert-before"][1] ],				     [ i18n["Insert Column After"],				       function() { tableOperation("TO-col-insert-after"); },				       i18n["Insert a new column after the current one"],				       config.btnList["TO-col-insert-after"][1] ],				     [ i18n["Delete Column"],				       function() { tableOperation("TO-col-delete"); },				       i18n["Delete the current column"],				       config.btnList["TO-col-delete"][1] ]				);			break;		    case "body":			elmenus.push(null,				     [ i18n["Justify Left"],				       function() { editor.execCommand("justifyleft"); }, null,				       config.btnList["justifyleft"][1] ],				     [ i18n["Justify Center"],				       function() { editor.execCommand("justifycenter"); }, null,				       config.btnList["justifycenter"][1] ],				     [ i18n["Justify Right"],				       function() { editor.execCommand("justifyright"); }, null,				       config.btnList["justifyright"][1] ],				     [ i18n["Justify Full"],				       function() { editor.execCommand("justifyfull"); }, null,				       config.btnList["justifyfull"][1] ]				);			break;		}	}	if (selection && !link)		menu.push(null, [ i18n["Make link"],				  function() { editor.execCommand("createlink", true); },				  i18n["Create a link"],				  config.btnList["createlink"][1] ]);	for (var i in elmenus)		menu.push(elmenus[i]);	menu.push(null,		  [ i18n["Remove the"] + " &lt;" + currentTarget.tagName + "&gt; " + i18n["Element"],		    function() {			    if (confirm(i18n["Please confirm that you want to remove this element:"] + " " + currentTarget.tagName)) {				    var el = currentTarget;				    var p = el.parentNode;				    p.removeChild(el);				    if (HTMLArea.is_gecko) {					    if (p.tagName.toLowerCase() == "td" && !p.hasChildNodes())						    p.appendChild(editor._doc.createElement("br"));					    editor.forceRedraw();					    editor.focusEditor();					    editor.updateToolbar();					    if (table) {						    var save_collapse = table.style.borderCollapse;						    table.style.borderCollapse = "collapse";						    table.style.borderCollapse = "separate";						    table.style.borderCollapse = save_collapse;					    }				    }			    }		    },		    i18n["Remove this node from the document"] ]);	return menu;};ContextMenu.prototype.popupMenu = function(ev) {	var self = this;	var i18n = ContextMenu.I18N;	if (this.currentMenu)		this.currentMenu.parentNode.removeChild(this.currentMenu);	function getPos(el) {		var r = { x: el.offsetLeft, y: el.offsetTop };		if (el.offsetParent) {			var tmp = getPos(el.offsetParent);			r.x += tmp.x;			r.y += tmp.y;		}		return r;	};	function documentClick(ev) {		ev || (ev = window.event);		if (!self.currentMenu) {			alert(i18n["How did you get here? (Please report!)"]);			return false;		}		var el = HTMLArea.is_ie ? ev.srcElement : ev.target;		for (; el != null && el != self.currentMenu; el = el.parentNode);		if (el == null)			self.closeMenu();		//HTMLArea._stopEvent(ev);		//return false;	};	var keys = [];	function keyPress(ev) {		ev || (ev = window.event);		HTMLArea._stopEvent(ev);		if (ev.keyCode == 27) {			self.closeMenu();			return false;		}		var key = String.fromCharCode(HTMLArea.is_ie ? ev.keyCode : ev.charCode).toLowerCase();		for (var i = keys.length; --i >= 0;) {			var k = keys[i];			if (k[0].toLowerCase() == key)				k[1].__msh.activate();		}	};	self.closeMenu = function() {		self.currentMenu.parentNode.removeChild(self.currentMenu);		self.currentMenu = null;		HTMLArea._removeEvent(document, "mousedown", documentClick);		HTMLArea._removeEvent(self.editordoc, "mousedown", documentClick);		if (keys.length > 0)			HTMLArea._removeEvent(self.editordoc, "keypress", keyPress);		if (HTMLArea.is_ie)			self.iePopup.hide();	};	var target = HTMLArea.is_ie ? ev.srcElement : ev.target;	var ifpos = getPos(self.editor._iframe);	var x = ev.clientX + ifpos.x;	var y = ev.clientY + ifpos.y;	var div;	var doc;	if (!HTMLArea.is_ie) {		doc = document;	} else {		// IE stinks		var popup = this.iePopup = window.createPopup();		doc = popup.document;		doc.open();		doc.write("<html><head><style type='text/css'>@import url(" + _editor_url + "plugins/ContextMenu/menu.css); html, body { padding: 0px; margin: 0px; overflow: hidden; border: 0px; }</style></head><body unselectable='yes'></body></html>");		doc.close();	}	div = doc.createElement("div");	if (HTMLArea.is_ie)		div.unselectable = "on";	div.oncontextmenu = function() { return false; };	div.className = "htmlarea-context-menu";	if (!HTMLArea.is_ie)		div.style.left = div.style.top = "0px";	doc.body.appendChild(div);	var table = doc.createElement("table");	div.appendChild(table);	table.cellSpacing = 0;	table.cellPadding = 0;	var parent = doc.createElement("tbody");	table.appendChild(parent);	var options = this.getContextMenu(target);	for (var i = 0; i < options.length; ++i) {		var option = options[i];		var item = doc.createElement("tr");		parent.appendChild(item);		if (HTMLArea.is_ie)			item.unselectable = "on";		else item.onmousedown = function(ev) {			HTMLArea._stopEvent(ev);			return false;		};		if (!option) {			item.className = "separator";			var td = doc.createElement("td");			td.className = "icon";			var IE_IS_A_FUCKING_SHIT = '>';			if (HTMLArea.is_ie) {				td.unselectable = "on";				IE_IS_A_FUCKING_SHIT = " unselectable='on' style='height=1px'>&nbsp;";			}			td.innerHTML = "<div" + IE_IS_A_FUCKING_SHIT + "</div>";			var td1 = td.cloneNode(true);			td1.className = "label";			item.appendChild(td);			item.appendChild(td1);		} else {			var label = option[0];			item.className = "item";			item.__msh = {				item: item,				label: label,				action: option[1],				tooltip: option[2] || null,				icon: option[3] || null,				activate: function() {					self.closeMenu();					self.editor.focusEditor();					this.action();				}			};			label = label.replace(/_([a-zA-Z0-9])/, "<u>$1</u>");			if (label != option[0])				keys.push([ RegExp.$1, item ]);			label = label.replace(/__/, "_");			var td1 = doc.createElement("td");			if (HTMLArea.is_ie)				td1.unselectable = "on";			item.appendChild(td1);			td1.className = "icon";			if (item.__msh.icon)				td1.innerHTML = "<img align='middle' src='" + item.__msh.icon + "' />";			var td2 = doc.createElement("td");			if (HTMLArea.is_ie)				td2.unselectable = "on";			item.appendChild(td2);			td2.className = "label";			td2.innerHTML = label;			item.onmouseover = function() {				this.className += " hover";				self.editor._statusBarTree.innerHTML = this.__msh.tooltip || '&nbsp;';			};			item.onmouseout = function() { this.className = "item"; };			item.oncontextmenu = function(ev) {				this.__msh.activate();				if (!HTMLArea.is_ie)					HTMLArea._stopEvent(ev);				return false;			};			item.onmouseup = function(ev) {				var timeStamp = (new Date()).getTime();				if (timeStamp - self.timeStamp > 500)					this.__msh.activate();				if (!HTMLArea.is_ie)					HTMLArea._stopEvent(ev);				return false;			};			//if (typeof option[2] == "string")			//item.title = option[2];		}	}	if (!HTMLArea.is_ie) {		var dx = x + div.offsetWidth - window.innerWidth + 4;		var dy = y + div.offsetHeight - window.innerHeight + 4;		if (dx > 0) x -= dx;		if (dy > 0) y -= dy;		div.style.left = x + "px";		div.style.top = y + "px";	} else {		// determine the size (did I mention that IE stinks?)		var foobar = document.createElement("div");		foobar.className = "htmlarea-context-menu";		foobar.innerHTML = div.innerHTML;		document.body.appendChild(foobar);		var w = foobar.offsetWidth;		var h = foobar.offsetHeight;		document.body.removeChild(foobar);		this.iePopup.show(ev.screenX, ev.screenY, w, h);	}	this.currentMenu = div;	this.timeStamp = (new Date()).getTime();	HTMLArea._addEvent(document, "mousedown", documentClick);	HTMLArea._addEvent(this.editordoc, "mousedown", documentClick);	if (keys.length > 0)		HTMLArea._addEvent(this.editordoc, "keypress", keyPress);	HTMLArea._stopEvent(ev);	return false;};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线看| 国产一区二区主播在线| 日韩和欧美一区二区三区| 国产麻豆精品95视频| 欧美在线观看视频一区二区三区| 精品久久一区二区| 亚洲综合小说图片| 成人精品gif动图一区| 欧美一区二区三区四区视频| 亚洲视频一区二区在线| 国产精品性做久久久久久| 91麻豆精品国产91久久久久久久久 | 悠悠色在线精品| 国产精品一品二品| 日韩一级成人av| 午夜日韩在线观看| 色婷婷亚洲精品| 亚洲免费在线视频| 国产 欧美在线| 欧美成人伊人久久综合网| 五月天丁香久久| 在线国产电影不卡| 亚洲精品成人天堂一二三| 菠萝蜜视频在线观看一区| 精品国产乱码久久久久久夜甘婷婷| 午夜久久久久久电影| 欧美三级蜜桃2在线观看| 亚洲欧美色综合| 91久久精品一区二区| 一区二区三区四区高清精品免费观看 | 日韩你懂的电影在线观看| 亚洲成a天堂v人片| 欧美日韩中文字幕一区二区| 一区二区三区毛片| 一本大道av伊人久久综合| 亚洲欧美激情在线| 91极品美女在线| 亚洲国产精品一区二区www在线| 欧美中文一区二区三区| 亚洲高清视频的网址| 欧美日韩激情一区二区| 日本亚洲一区二区| 日韩视频在线观看一区二区| 久久se精品一区二区| 久久先锋影音av鲁色资源| 国产美女在线观看一区| 国产欧美一区二区精品性色超碰| 国产一区二区在线免费观看| 久久精品视频免费| 成人av免费在线观看| 亚洲欧美色综合| 91精选在线观看| 精品一区二区三区影院在线午夜| 久久众筹精品私拍模特| 成人av在线影院| 一级精品视频在线观看宜春院 | 精品捆绑美女sm三区| 国产精品一区二区三区网站| 17c精品麻豆一区二区免费| 色菇凉天天综合网| 免费成人你懂的| 国产精品嫩草影院av蜜臀| 91丝袜美女网| 韩国三级电影一区二区| 国产精品麻豆99久久久久久| 欧美亚洲国产一区二区三区| 婷婷激情综合网| 国产精品丝袜一区| 在线电影欧美成精品| 国产精品性做久久久久久| 一区二区三区在线播放| 精品国精品国产| 色悠悠亚洲一区二区| 日本不卡免费在线视频| 一区精品在线播放| 日韩一区二区三区观看| 99久久精品国产麻豆演员表| 天堂一区二区在线| 国产精品短视频| 日韩精品影音先锋| 91免费国产在线| 激情六月婷婷久久| 图片区小说区区亚洲影院| 国产欧美精品一区二区三区四区 | 欧美精品一区二| 欧美亚洲禁片免费| 成人午夜免费av| 国产视频在线观看一区二区三区| 亚洲乱码中文字幕| 欧美午夜在线观看| 国产精品嫩草影院com| 成人免费福利片| 亚洲精品久久7777| 亚洲成av人片观看| 国产精品18久久久久久久久 | 久久这里只有精品6| 日韩在线观看一区二区| 久久人人爽人人爽| 色域天天综合网| 色综合久久九月婷婷色综合| 亚洲色欲色欲www| 欧美伊人久久久久久午夜久久久久| 天天av天天翘天天综合网| 国产精品久久午夜夜伦鲁鲁| 成人一区在线观看| 国产精品的网站| 午夜久久电影网| 欧美成人猛片aaaaaaa| 国内精品久久久久影院薰衣草 | 中文字幕国产精品一区二区| 88在线观看91蜜桃国自产| 日本不卡123| 天涯成人国产亚洲精品一区av| 丝袜亚洲另类丝袜在线| 精品亚洲国内自在自线福利| 日韩电影在线一区二区三区| 亚洲第一久久影院| 久久久精品国产免大香伊| 欧洲激情一区二区| 国产黑丝在线一区二区三区| 亚洲免费av网站| 欧美大片在线观看一区二区| 韩国女主播一区二区三区| 日本欧美韩国一区三区| 日韩伦理电影网| 中文字幕一区二区日韩精品绯色| 亚洲国产视频一区| 国产欧美一区二区精品仙草咪| 日韩欧美中文一区二区| 色噜噜狠狠成人网p站| 欧美性生交片4| 国产一区二区三区电影在线观看| 亚洲高清中文字幕| 国产精品美女一区二区在线观看| 色哟哟国产精品| 欧美精品久久久久久久久老牛影院| 蜜桃免费网站一区二区三区| 亚欧色一区w666天堂| 成人精品一区二区三区四区| 一本色道久久加勒比精品| 欧美日韩国产在线观看| 91精品国产色综合久久| 日韩欧美亚洲国产另类| 亚洲精品在线电影| 日韩三级视频中文字幕| 国产精品福利影院| 狠狠狠色丁香婷婷综合激情| 91麻豆免费看| 国产日韩精品久久久| 日日夜夜免费精品| 美女视频一区在线观看| 久久66热偷产精品| 波多野结衣中文字幕一区| 欧美性xxxxx极品少妇| 精品国产青草久久久久福利| 久久精品欧美日韩| 一区二区三区中文免费| 精品伊人久久久久7777人| 99r国产精品| 欧美成人女星排名| 一区二区高清视频在线观看| 久久av资源网| 日本道免费精品一区二区三区| 精品国产一二三区| 亚洲最大色网站| 国产99久久久精品| 制服丝袜激情欧洲亚洲| 国产精品国产三级国产三级人妇 | 久久九九影视网| 亚洲最新视频在线播放| 国产二区国产一区在线观看| 欧美美女一区二区在线观看| 国产精品久久久久桃色tv| 精品一区中文字幕| 欧美日韩一区二区三区免费看| 国产精品天天摸av网| 精品亚洲aⅴ乱码一区二区三区| 欧洲精品一区二区| 成人欧美一区二区三区| 国产一区二区精品在线观看| 8v天堂国产在线一区二区| 中文字幕亚洲综合久久菠萝蜜| 奇米精品一区二区三区四区| 99麻豆久久久国产精品免费 | 日韩免费在线观看| 成人免费在线播放视频| 国产精品一线二线三线| 欧美三级在线播放| 亚洲午夜久久久久久久久电影网| 99精品视频在线播放观看| 亚洲精品一区二区精华| 久久国产尿小便嘘嘘尿| 国产传媒欧美日韩成人| 精品国产伦一区二区三区观看方式| 亚洲一区二区三区精品在线| 国产成人精品免费网站| 久久久国产精华| 国产精品综合网| 久久久影视传媒| 国模大尺度一区二区三区|