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

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

?? table-operations.js

?? hudong維客系統
?? JS
?? 第 1 頁 / 共 3 頁
字號:
			td.innerHTML = mozbr;
		}
	};

	function splitRow(td) {
		var n = parseInt("" + td.rowSpan);
		var nc = parseInt("" + td.colSpan);
		td.rowSpan = 1;
		tr = td.parentNode;
		var itr = tr.rowIndex;
		var trs = tr.parentNode.rows;
		var index = td.cellIndex;
		while (--n > 0) {
			tr = trs[++itr];
			var otd = editor._doc.createElement("td");
			otd.colSpan = td.colSpan;
			otd.innerHTML = mozbr;
			tr.insertBefore(otd, tr.cells[index]);
		}
		editor.forceRedraw();
		editor.updateToolbar();
	};

	function splitCol(td) {
		var nc = parseInt("" + td.colSpan);
		td.colSpan = 1;
		tr = td.parentNode;
		var ref = td.nextSibling;
		while (--nc > 0) {
			var otd = editor._doc.createElement("td");
			otd.rowSpan = td.rowSpan;
			otd.innerHTML = mozbr;
			tr.insertBefore(otd, ref);
		}
		editor.forceRedraw();
		editor.updateToolbar();
	};

	function splitCell(td) {
		var nc = parseInt("" + td.colSpan);
		splitCol(td);
		var items = td.parentNode.cells;
		var index = td.cellIndex;
		while (nc-- > 0) {
			splitRow(items[index++]);
		}
	};

	function selectNextNode(el) {
		var node = el.nextSibling;
		while (node && node.nodeType != 1) {
			node = node.nextSibling;
		}
		if (!node) {
			node = el.previousSibling;
			while (node && node.nodeType != 1) {
				node = node.previousSibling;
			}
		}
		if (!node) {
			node = el.parentNode;
		}
		editor.selectNodeContents(node);
	};

	switch (button_id) {
		// ROWS

	    case "TO-row-insert-above":
	    case "TO-row-insert-under":
		var tr = this.getClosest("tr");
		if (!tr) {
			break;
		}
		var otr = tr.cloneNode(true);
		clearRow(otr);
		tr.parentNode.insertBefore(otr, /under/.test(button_id) ? tr.nextSibling : tr);
		editor.forceRedraw();
		editor.focusEditor();
		break;
	    case "TO-row-delete":
		var tr = this.getClosest("tr");
		if (!tr) {
			break;
		}
		var par = tr.parentNode;
		if (par.rows.length == 1) {
			alert(i18n["not-del-last-row"]);
			break;
		}
		// set the caret first to a position that doesn't
		// disappear.
		selectNextNode(tr);
		par.removeChild(tr);
		editor.forceRedraw();
		editor.focusEditor();
		editor.updateToolbar();
		break;
	    case "TO-row-split":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		splitRow(td);
		break;

		// COLUMNS

	    case "TO-col-insert-before":
	    case "TO-col-insert-after":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		var rows = td.parentNode.parentNode.rows;
		var index = td.cellIndex;
		for (var i = rows.length; --i >= 0;) {
			var tr = rows[i];
			var ref = tr.cells[index + (/after/.test(button_id) ? 1 : 0)];
			var otd = editor._doc.createElement("td");
			otd.innerHTML = mozbr;
			tr.insertBefore(otd, ref);
		}
		editor.focusEditor();
		break;
	    case "TO-col-split":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		splitCol(td);
		break;
	    case "TO-col-delete":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		var index = td.cellIndex;
		if (td.parentNode.cells.length == 1) {
			alert(i18n["not-del-last-col"]);
			break;
		}
		// set the caret first to a position that doesn't disappear
		selectNextNode(td);
		var rows = td.parentNode.parentNode.rows;
		for (var i = rows.length; --i >= 0;) {
			var tr = rows[i];
			tr.removeChild(tr.cells[index]);
		}
		editor.forceRedraw();
		editor.focusEditor();
		editor.updateToolbar();
		break;

		// CELLS

	    case "TO-cell-split":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		splitCell(td);
		break;
	    case "TO-cell-insert-before":
	    case "TO-cell-insert-after":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		var tr = td.parentNode;
		var otd = editor._doc.createElement("td");
		otd.innerHTML = mozbr;
		tr.insertBefore(otd, /after/.test(button_id) ? td.nextSibling : td);
		editor.forceRedraw();
		editor.focusEditor();
		break;
	    case "TO-cell-delete":
		var td = this.getClosest("td");
		if (!td) {
			break;
		}
		if (td.parentNode.cells.length == 1) {
			alert(i18n["not-del-last-cell"]);
			break;
		}
		// set the caret first to a position that doesn't disappear
		selectNextNode(td);
		td.parentNode.removeChild(td);
		editor.forceRedraw();
		editor.updateToolbar();
		break;
	    case "TO-cell-merge":
		// !! FIXME: Mozilla specific !!
		var sel = editor._getSelection();
		var range, i = 0;
		var rows = [];
		var row = null;
		var cells = null;
		if (!HTMLArea.is_ie) {
			try {
				while (range = sel.getRangeAt(i++)) {
					var td = range.startContainer.childNodes[range.startOffset];
					if (td.parentNode != row) {
						row = td.parentNode;
						(cells) && rows.push(cells);
						cells = [];
					}
					cells.push(td);
				}
			} catch(e) {/* finished walking through selection */}
			rows.push(cells);
		} else {
			// Internet Explorer "browser"
			var td = this.getClosest("td");
			if (!td) {
				alert(i18n["Please click into some cell"]);
				break;
			}
			var tr = td.parentElement;
			var no_cols = prompt(i18n["How many columns would you like to merge?"], 2);
			if (!no_cols) {
				// cancelled
				break;
			}
			var no_rows = prompt(i18n["How many rows would you like to merge?"], 2);
			if (!no_rows) {
				// cancelled
				break;
			}
			var cell_index = td.cellIndex;
			while (no_rows-- > 0) {
				td = tr.cells[cell_index];
				cells = [td];
				for (var i = 1; i < no_cols; ++i) {
					td = td.nextSibling;
					if (!td) {
						break;
					}
					cells.push(td);
				}
				rows.push(cells);
				tr = tr.nextSibling;
				if (!tr) {
					break;
				}
			}
		}
		var HTML = "";
		for (i = 0; i < rows.length; ++i) {
			// i && (HTML += "<br />");
			var cells = rows[i];
			for (var j = 0; j < cells.length; ++j) {
				// j && (HTML += "&nbsp;");
				var cell = cells[j];
				HTML += cell.innerHTML;
				(i || j) && (cell.parentNode.removeChild(cell));
			}
		}
		var td = rows[0][0];
		td.innerHTML = HTML;
		td.rowSpan = rows.length;
		td.colSpan = rows[0].length;
		editor.selectNodeContents(td);
		editor.forceRedraw();
		editor.focusEditor();
		break;

		// PROPERTIES

	    case "TO-table-prop":
		this.dialogTableProperties();
		break;

	    case "TO-row-prop":
		this.dialogRowCellProperties(false);
		break;

	    case "TO-cell-prop":
		this.dialogRowCellProperties(true);
		break;

	    default:
		alert("Button [" + button_id + "] not yet implemented");
	}
};

// the list of buttons added by this plugin
TableOperations.btnList = [
	// table properties button
	["table-prop",       "table"],
	null,			// separator

	// ROWS
	["row-prop",         "tr"],
	["row-insert-above", "tr"],
	["row-insert-under", "tr"],
	["row-delete",       "tr"],
	["row-split",        "td[rowSpan!=1]"],
	null,

	// COLS
	["col-insert-before", "td"],
	["col-insert-after",  "td"],
	["col-delete",        "td"],
	["col-split",         "td[colSpan!=1]"],
	null,

	// CELLS
	["cell-prop",          "td"],
	["cell-insert-before", "td"],
	["cell-insert-after",  "td"],
	["cell-delete",        "td"],
	["cell-merge",         "tr"],
	["cell-split",         "td[colSpan!=1,rowSpan!=1]"]
	];



//// GENERIC CODE [style of any element; this should be moved into a separate
//// file as it'll be very useful]
//// BEGIN GENERIC CODE -----------------------------------------------------

TableOperations.getLength = function(value) {
	var len = parseInt(value);
	if (isNaN(len)) {
		len = "";
	}
	return len;
};

// Applies the style found in "params" to the given element.
TableOperations.processStyle = function(params, element) {
	var style = element.style;
	for (var i in params) {
		var val = params[i];
		switch (i) {
		    case "f_st_backgroundColor":
			style.backgroundColor = val;
			break;
		    case "f_st_color":
			style.color = val;
			break;
		    case "f_st_backgroundImage":
			if (/\S/.test(val)) {
				style.backgroundImage = "url(" + val + ")";
			} else {
				style.backgroundImage = "none";
			}
			break;
		    case "f_st_borderWidth":
			style.borderWidth = val;
			break;
		    case "f_st_borderStyle":
			style.borderStyle = val;
			break;
		    case "f_st_borderColor":
			style.borderColor = val;
			break;
		    case "f_st_borderCollapse":
			style.borderCollapse = val ? "collapse" : "";
			break;
		    case "f_st_width":
			if (/\S/.test(val)) {
				style.width = val + params["f_st_widthUnit"];
			} else {
				style.width = "";
			}
			break;
		    case "f_st_height":
			if (/\S/.test(val)) {
				style.height = val + params["f_st_heightUnit"];
			} else {
				style.height = "";
			}
			break;
		    case "f_st_textAlign":
			if (val == "char") {
				var ch = params["f_st_textAlignChar"];
				if (ch == '"') {
					ch = '\\"';
				}
				style.textAlign = '"' + ch + '"';
			} else {
				style.textAlign = val;
			}
			break;
		    case "f_st_verticalAlign":

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女一区二区三区四区| 成人福利在线看| 欧美日本一区二区在线观看| 亚洲一区二区三区四区不卡| 精品视频一区三区九区| 日韩电影网1区2区| 91精品国产美女浴室洗澡无遮挡| 麻豆精品在线播放| 国产亚洲自拍一区| 一本一道久久a久久精品综合蜜臀| 一区二区三区中文字幕电影 | 国产区在线观看成人精品| 国产一区二区三区高清播放| 国产亚洲欧美在线| 色噜噜狠狠成人中文综合 | 日韩国产成人精品| 26uuu精品一区二区在线观看| 丁香激情综合五月| 欧美aaa在线| 久久夜色精品国产欧美乱极品| 大陆成人av片| 婷婷久久综合九色综合伊人色| 欧美电影精品一区二区| www.亚洲在线| 日韩成人午夜电影| 国产精品久久久久天堂| 欧美日韩二区三区| 国产不卡视频在线观看| 亚洲高清免费视频| 中文字幕二三区不卡| 欧美日韩国产经典色站一区二区三区| 激情五月激情综合网| 亚洲三级电影全部在线观看高清| 91精品国产综合久久久久久久久久| 国产麻豆精品在线| 视频一区在线播放| 最新高清无码专区| 26uuu国产一区二区三区| 色婷婷av一区| 丁香激情综合五月| 蜜臀久久久久久久| 亚洲综合在线五月| 日本一区二区三区在线观看| 8x8x8国产精品| 色94色欧美sute亚洲13| 国产一区二区精品久久91| 午夜精品一区二区三区三上悠亚| 国产精品情趣视频| 久久综合给合久久狠狠狠97色69| 欧美日韩综合色| 99免费精品在线| 国产在线看一区| 日韩av在线发布| 一区二区欧美国产| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美日韩三级一区| 一本到高清视频免费精品| 国产福利一区二区三区视频在线| 人人精品人人爱| 午夜精品福利一区二区蜜股av| 亚洲精品中文在线影院| 综合中文字幕亚洲| 中文字幕欧美区| 久久精品一区二区三区不卡| 日韩免费视频一区二区| 91麻豆精品国产| 国产亚洲婷婷免费| 555www色欧美视频| 在线观看成人免费视频| 亚洲大型综合色站| 一区二区在线观看av| 中文字幕中文字幕一区二区| 国产欧美一区在线| 久久人人97超碰com| 精品国产一区a| 日韩情涩欧美日韩视频| 久久精品在线观看| 久久婷婷久久一区二区三区| 欧美精品一区二区三区久久久| 欧美电视剧免费全集观看| 欧美一区二区三区视频在线观看| 在线播放/欧美激情| 欧美福利视频一区| 日韩亚洲欧美在线| 精品国产伦一区二区三区免费 | 国产精品麻豆网站| 中文字幕在线一区| 亚洲图片另类小说| 亚洲精品视频在线观看免费 | 国产精品你懂的在线| 中文一区二区在线观看| 国产精品久久久一本精品| 国产精品二区一区二区aⅴ污介绍| 中文字幕亚洲在| 亚洲一区二区三区美女| 男女视频一区二区| 国产一区二区女| 97久久精品人人做人人爽50路| 色av一区二区| 日韩欧美综合在线| 国产色产综合色产在线视频| 亚洲欧美日韩国产中文在线| 偷窥少妇高潮呻吟av久久免费| 精品午夜久久福利影院| 成人免费av网站| 欧美少妇一区二区| 精品嫩草影院久久| 国产精品夫妻自拍| 天天免费综合色| 国产盗摄女厕一区二区三区| 色综合激情久久| 精品日韩99亚洲| 最新高清无码专区| 麻豆免费精品视频| 99re视频这里只有精品| 欧美一区二区三区性视频| 久久九九久久九九| 亚洲一卡二卡三卡四卡无卡久久 | 欧美日韩在线播| 国产日韩综合av| 香蕉影视欧美成人| eeuss鲁片一区二区三区| 欧美精品一卡二卡| 亚洲三级小视频| 国产乱码精品一品二品| 欧美日韩视频不卡| 中文字幕在线免费不卡| 九九久久精品视频| 在线一区二区三区四区五区| 久久人人爽人人爽| 麻豆一区二区在线| 欧美色网一区二区| 国产精品女人毛片| 国产一区二区三区综合| 欧美日韩国产美女| 亚洲人被黑人高潮完整版| 国产精品18久久久久久久久久久久| 欧美三级日本三级少妇99| 国产精品美日韩| 国产一区二区女| 日韩精品一区二区三区四区| 亚洲国产精品一区二区久久 | 国产精品无遮挡| 激情综合亚洲精品| 777午夜精品视频在线播放| 亚洲日本在线a| 成人动漫一区二区| 久久精品夜夜夜夜久久| 久久超碰97中文字幕| 欧美亚洲高清一区二区三区不卡| 国产精品国产三级国产| 国产高清不卡一区二区| 久久综合九色综合97婷婷女人 | 51精品秘密在线观看| 亚洲男帅同性gay1069| jizzjizzjizz欧美| 国产精品毛片大码女人| 成人午夜电影小说| 日本一二三四高清不卡| 国产**成人网毛片九色 | 欧美国产丝袜视频| 国产精品一区三区| 久久久久久久久久看片| 国产精品一二三四五| 国产欧美日韩亚州综合| 国产在线日韩欧美| 欧美激情一区二区三区四区| 成人av片在线观看| 国产精品福利一区| 色综合一区二区三区| 一区二区三区中文在线| 欧美日韩一区三区四区| 日韩激情一二三区| 日韩欧美国产午夜精品| 九九**精品视频免费播放| 久久综合九色综合久久久精品综合 | 国产成人av资源| 亚洲天堂久久久久久久| 一道本成人在线| 首页国产欧美久久| 精品国产乱码久久久久久浪潮| 国产盗摄精品一区二区三区在线| 国产精品久久夜| 在线精品视频一区二区| 午夜激情久久久| 精品国产乱码久久久久久老虎 | 久久久久久99久久久精品网站| 高清国产一区二区| 一区二区三区欧美激情| 欧美精品亚洲二区| 国产一区二区看久久| 亚洲天堂网中文字| 91精品久久久久久蜜臀| 国产伦理精品不卡| 亚洲精选免费视频| 日韩欧美中文一区| av午夜一区麻豆| 日本麻豆一区二区三区视频| 国产欧美精品一区二区色综合朱莉| 91碰在线视频|