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

📄 editor_template_src.js

📁 php邮件模块
💻 JS
📖 第 1 页 / 共 3 页
字号:
	function getAttrib(elm, name) {
		return elm.getAttribute(name) ? elm.getAttribute(name) : "";
	};

	// No node provided
	if (node == null)
	{
		return;
	}

	// Update path
	var pathElm = document.getElementById(editor_id + "_path");
	var inst = tinyMCE.getInstanceById(editor_id);
	var doc = inst.getDoc();

	if (pathElm) {
		// Get node path
		var parentNode = node;
		var path = new Array();
		
		while (parentNode != null) {
			if (parentNode.nodeName.toUpperCase() == "BODY") {
				break;
			}

			// Only append element nodes to path
			if (parentNode.nodeType == 1) {
				path[path.length] = parentNode;
			}

			parentNode = parentNode.parentNode;
		}

		// Setup HTML
		var html = "";
		for (var i=path.length-1; i>=0; i--) {
			var nodeName = path[i].nodeName.toLowerCase();
			var nodeData = "";

			if (nodeName == "b") {
				nodeName = "strong";
			}

			if (nodeName == "i") {
				nodeName = "em";
			}

			if (nodeName == "span") {
				var cn = tinyMCE.getAttrib(path[i], "class");
				if (cn != "" && cn.indexOf('mceItem') == -1)
					nodeData += "class: " + cn + " ";

				var st = tinyMCE.getAttrib(path[i], "style");
				if (st != "") {
					st = tinyMCE.serializeStyle(tinyMCE.parseStyle(st));
					nodeData += "style: " + st + " ";
				}
			}

			if (nodeName == "font") {
				if (tinyMCE.getParam("convert_fonts_to_spans"))
					nodeName = "span";

				var face = tinyMCE.getAttrib(path[i], "face");
				if (face != "")
					nodeData += "font: " + face + " ";

				var size = tinyMCE.getAttrib(path[i], "size");
				if (size != "")
					nodeData += "size: " + size + " ";

				var color = tinyMCE.getAttrib(path[i], "color");
				if (color != "")
					nodeData += "color: " + color + " ";
			}

			if (getAttrib(path[i], 'id') != "") {
				nodeData += "id: " + path[i].getAttribute('id') + " ";
			}

			var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
			if (className != "" && className.indexOf('mceItem') == -1)
				nodeData += "class: " + className + " ";

			if (getAttrib(path[i], 'src') != "") {
				var src = tinyMCE.getAttrib(path[i], "mce_src");

				if (src == "")
					 src = tinyMCE.getAttrib(path[i], "src");

				nodeData += "src: " + src + " ";
			}

			if (getAttrib(path[i], 'href') != "") {
				var href = tinyMCE.getAttrib(path[i], "mce_href");

				if (href == "")
					 href = tinyMCE.getAttrib(path[i], "href");

				nodeData += "href: " + href + " ";
			}

			if (nodeName == "img" && tinyMCE.getAttrib(path[i], "class").indexOf('mceItemFlash') != -1) {
				nodeName = "flash";
				nodeData = "src: " + path[i].getAttribute('title');
			}

			if (nodeName == "a" && (anchor = tinyMCE.getAttrib(path[i], "name")) != "") {
				nodeName = "a";
				nodeName += "#" + anchor;
				nodeData = "";
			}

			if (getAttrib(path[i], 'name').indexOf("mce_") != 0) {
				var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
				if (className != "" && className.indexOf('mceItem') == -1) {
					nodeName += "." + className;
				}
			}

			var cmd = 'tinyMCE.execInstanceCommand(\'' + editor_id + '\',\'mceSelectNodeDepth\',false,\'' + i + '\');';
			html += '<a title="' + nodeData + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" target="_self" class="mcePathItem">' + nodeName + '</a>';

			if (i > 0) {
				html += " &raquo; ";
			}
		}

		pathElm.innerHTML = '<a href="#" accesskey="x"></a>' + tinyMCE.getLang('lang_theme_path') + ": " + html + '&nbsp;';
	}

	// Reset old states
	tinyMCE.switchClassSticky(editor_id + '_justifyleft', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_justifyfull', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_sub', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_sup', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_link', 'mceButtonDisabled', true);
	tinyMCE.switchClassSticky(editor_id + '_unlink', 'mceButtonDisabled', true);
	tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonDisabled', true);
	tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonNormal');
	tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonNormal');

	if (node.nodeName == "A" && tinyMCE.getAttrib(node, "class").indexOf('mceItemAnchor') != -1)
		tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonSelected');

	// Get link
	var anchorLink = tinyMCE.getParentElement(node, "a", "href");

	if (anchorLink || any_selection)
	{
		tinyMCE.switchClassSticky(editor_id + '_link', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
		tinyMCE.switchClassSticky(editor_id + '_unlink', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
	}

	// Handle visual aid
	tinyMCE.switchClassSticky(editor_id + '_visualaid', visual_aid ? 'mceButtonSelected' : 'mceButtonNormal', false);

	if (undo_levels != -1)
	{
		tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonDisabled', true);
		tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonDisabled', true);
	}

	// Within li, blockquote
	if (tinyMCE.getParentElement(node, "li,blockquote"))
	{
		tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonNormal', false);
	}

	// Has redo levels
	if (undo_index != -1 && (undo_index < undo_levels-1 && undo_levels > 0))
	{
		tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonNormal', false);
	}

	// Has undo levels
	if (undo_index != -1 && (undo_index > 0 && undo_levels > 0))
	{
		tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonNormal', false);
	}

	// Select class in select box
	var selectElm = document.getElementById(editor_id + "_styleSelect");
	
	if (selectElm)
	{
		TinyMCE_advanced_setupCSSClasses(editor_id);

		classNode = node;
		breakOut = false;
		var index = 0;

		do
		{
			if (classNode && classNode.className)
			{
				for (var i=0; i<selectElm.options.length; i++)
				{
					if (selectElm.options[i].value == classNode.className)
					{
						index = i;
						breakOut = true;
						break;
					}
				}
			}
		} while (!breakOut && classNode != null && (classNode = classNode.parentNode) != null);

		selectElm.selectedIndex = index;
	}

	// Select formatblock
	var selectElm = document.getElementById(editor_id + "_formatSelect");
	if (selectElm) {
		var elm = tinyMCE.getParentElement(node, "p,div,h1,h2,h3,h4,h5,h6,pre,address");

		if (elm)
			selectByValue(selectElm, "<" + elm.nodeName.toLowerCase() + ">");
		else
			selectByValue(selectElm, "");
	}

	// Select fontselect
	var selectElm = document.getElementById(editor_id + "_fontNameSelect");
	if (selectElm) {
		if (!tinyMCE.isSafari && !(tinyMCE.isMSIE && !tinyMCE.isOpera)) {
			var face = inst.queryCommandValue('FontName');

			face = face == null || face == "" ? "" : face;

			selectByValue(selectElm, face, face != "");
		} else {
			var elm = tinyMCE.getParentElement(node, "font", "face");

			if (elm) {
				var family = tinyMCE.getAttrib(elm, "face");

				if (family == '')
					family = '' + elm.style.fontFamily;

				if (!selectByValue(selectElm, family, family != ""))
					selectByValue(selectElm, "");
			} else
				selectByValue(selectElm, "");
		}
	}

	// Select fontsize
	var selectElm = document.getElementById(editor_id + "_fontSizeSelect");
	if (selectElm) {
		if (!tinyMCE.isSafari && !tinyMCE.isOpera) {
			var size = inst.queryCommandValue('FontSize');
			selectByValue(selectElm, size == null || size == "" ? "0" : size);
		} else {
			var elm = tinyMCE.getParentElement(node, "font", "size");
			if (elm) {
				var size = tinyMCE.getAttrib(elm, "size");

				if (size == '') {
					var sizes = new Array('', '8px', '10px', '12px', '14px', '18px', '24px', '36px');

					size = '' + elm.style.fontSize;

					for (var i=0; i<sizes.length; i++) {
						if (('' + sizes[i]) == size) {
							size = i;
							break;
						}
					}
				}

				if (!selectByValue(selectElm, size))
					selectByValue(selectElm, "");
			} else
				selectByValue(selectElm, "0");
		}
	}

	// Handle align attributes
	alignNode = node;
	breakOut = false;
	do {
		if (!alignNode.getAttribute || !alignNode.getAttribute('align')) {
			continue;
		}

		switch (alignNode.getAttribute('align').toLowerCase()) {
			case "left":
				tinyMCE.switchClassSticky(editor_id + '_justifyleft', 'mceButtonSelected');
				breakOut = true;
			break;

			case "right":
				tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonSelected');
				breakOut = true;
			break;

			case "middle":
			case "center":
				tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonSelected');
				breakOut = true;
			break;

			case "justify":
				tinyMCE.switchClassSticky(editor_id + '_justifyfull', 'mceButtonSelected');
				breakOut = true;
			break;
		}
	} while (!breakOut && (alignNode = alignNode.parentNode) != null);

	// Div justification
	var div = tinyMCE.getParentElement(node, "div");
	if (div && div.style.textAlign == "center")
		tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonSelected');

	// Do special text
	if (!setup_content) {
		// , "JustifyLeft", "_justifyleft", "JustifyCenter", "justifycenter", "JustifyRight", "justifyright", "JustifyFull", "justifyfull", "InsertUnorderedList", "bullist", "InsertOrderedList", "numlist", "InsertUnorderedList", "bullist", "Outdent", "outdent", "Indent", "indent", "subscript", "sub"
		var ar = new Array("Bold", "_bold", "Italic", "_italic", "Strikethrough", "_strikethrough", "superscript", "_sup", "subscript", "_sub");
		for (var i=0; i<ar.length; i+=2) {
			if (inst.queryCommandState(ar[i]))
				tinyMCE.switchClassSticky(editor_id + ar[i+1], 'mceButtonSelected');
		}

		if (inst.queryCommandState("Underline") && (node.parentNode == null || node.parentNode.nodeName != "A")) {
			tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
		}
	}

	// Handle elements
	do {
		switch (node.nodeName) {
/*			case "B":
			case "STRONG":
				tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
			break;

			case "I":
			case "EM":
				tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
			break;

			case "U":
				tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
			break;

			case "STRIKE":
				tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
			break;*/

			case "UL":
				tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonSelected');
			break;

			case "OL":
				tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonSelected');
			break;

			case "HR":
				 tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonSelected');
			break;

			case "IMG":
			if (getAttrib(node, 'name').indexOf('mce_') != 0) {
				tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonSelected');
			}
			break;
		}
	} while ((node = node.parentNode) != null);
};

// This function auto imports CSS classes into the class selection droplist
function TinyMCE_advanced_setupCSSClasses(editor_id) {
	if (!TinyMCE_advanced_autoImportCSSClasses)	{
		return;
	}

	var selectElm = document.getElementById(editor_id + '_styleSelect');

	if (selectElm && selectElm.getAttribute('cssImported') != 'true') {
		var csses = tinyMCE.getCSSClasses(editor_id);
		if (csses && selectElm)	{
			for (var i=0; i<csses.length; i++) {
				selectElm.options[selectElm.length] = new Option(csses[i], csses[i]);
			}
		}

		// Only do this once
		if (csses != null && csses.length > 0) {
			selectElm.setAttribute('cssImported', 'true');
		}
	}
};

⌨️ 快捷键说明

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