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

📄 edit.js

📁 论坛BBS
💻 JS
字号:
/*
##############################################
#     BigMole Dynamic Discussion Board 2.0     #
#     By Emil A Eklund (http://BigMole.5188.org/contact.html#emil)      #
#    and Erik Arvidson (http://BigMole.5188.org/contact.html#erik)     #
#              April 24, 1999                #
##############################################
# Feel free to use this script for personal  #
# and non-profit organisation's websites,    #
# as long as you're giving us credits for it #
# in other words, not removing nur modifying #
# this notice in any of the files it apperes #
##############################################
#   For comercial use contact Emil or Erik   #
##############################################

This file is for the UI in the new/edit/reply message
The cookie functions were created by Bill Dortch, hIdaho Design <bdortch@hidaho.com>
and was released to Public Domain
*/

//start cookie functions
function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

// end cookie functions


// Edit the months array if you want another language
function getNiceDate(ticks) {
	var str = "";
	var d = new Date(ticks * 1000);
	str += months[d.getMonth()];
	str += " " + d.getDate();
	str += ", " + d.getFullYear();

	return str;
}


// If you want to edit the layout of the quoted text do this here (it is the variable str that is inserted)
function loadReplyToMessage() {
	if (!window.opener.closed) { // Bug in IE5
		var d = window.opener.parent.frames["messageframe"].document;
	
		var orgBody = d.frames("contentArea").window.document.body.innerHTML;
		var orgName = d.all("email").innerText;
		var orgEmail = d.all("email");
		var orgSubject = d.all("subject").innerText;
		var orgDate = d.all("date").innerText; //getNiceDate(d.all.ticks.value);
	
		var f = document.forms.postForm
		f.id.value = d.all("id").value;
		f.group.value = d.all("group").value;		
		if (orgSubject.indexOf("Re:") == -1)
			orgSubject = "Re:" + orgSubject;
	
		visibleSubject.value = orgSubject;
		visibleSubject.emptytext = emptySubjectText;
		visibleSubject.style.color = validTextColor;
		
		updateTitle();
		
		updateToField();
			
		var str = "<p><br></p>\n<div style='" + quotedStyle + "'>";
		
		str += "<b>" + fromWord + ": </b>";
		
		if (orgEmail.children.length > 0) {
			str += "<a href='" + orgEmail.children[0].href + "'>" + orgName + "</a>";
		}
		else
			str += orgName;
		
		str += "<br>\n<b>" + sentWord + ": </b>" + orgDate;
		str += "<br>\n<b>" + subjectWord + ": </b>" + replaceSpecial(orgSubject);
		str += "<br><br>\n";
		
		str += orgBody;
		
		str += "</div>\n<p><br></p>"
	
	// In this case (reply) we dont want the entire HTML structure
		window.frames["edit1"].frames["textEdit"].document.body.innerHTML = str;
	}
	else {
			if (confirm(editContactError))
				window.close();
	}
}

// This sets the group name in the to field
function updateToField() {
	var gr = opener.parent.treeframe.document.body.group;

	var grName;
	var divs = opener.parent.oeBar.document.all.tags("DIV");
		
	for (var i=0; i<divs.length; i++) {
		if (divs[i].getAttribute("onclick") != null	&& divs[i].getAttribute("onclick").toString().indexOf(gr) != -1) {
			grName = divs[i].innerText;
			break;
		}
	}

	toField.innerText = grName.substr(2);
}


function loadOriginalMessage() {		// Used for admin mode when editing a message
	if (window.opener.closed) return;

	var d = window.opener.parent.frames["messageframe"].document;

	var orgBody;
	if (ieVersion() == 5)
		orgBody = d.frames("contentArea").window.document.documentElement.outerHTML + "";
	else
		orgBody = d.frames("contentArea").window.document.body.outerHTML + "";
	var orgName = d.all("email").innerText;
	var orgEmail = d.all("email");
	var orgSubject = d.all("subject").innerText;
	var orgDate = d.all("date").innerText;


	var f = document.forms.postForm
	f.id.value = d.all("id").value;

	f.group.value = d.all("group").value;	

	visibleSubject.value = orgSubject;
	visibleSubject.emptytext = emptySubjectText;
	visibleSubject.style.color = validTextColor;
	
	visibleName.value = orgName;
	visibleName.emptytext = emptyNameText;
	visibleName.style.color = validTextColor;
	
	if (orgEmail.children.length > 0) {
		var email = orgEmail.children[0].href;

		visibleEmail.value = email.substring(7,email.length);
		visibleEmail.emptytext = emptyEmailText;
		visibleEmail.style.color = validTextColor;
	}

	updateToField();
	
//	window.frames["edit1"].frames["textEdit"].document.body.innerHTML = orgBody;	
	window.frames["edit1"].frames["textEdit"].document.open();
	window.frames["edit1"].frames["textEdit"].document.write(orgBody);
	window.frames["edit1"].frames["textEdit"].document.close();
}


function doInput(el) {
	var emptyText = el.getAttribute("emptytext");
	
	if (el.editMode == null)
		el.editMode = false;
	
	if (!el.editMode) {
		el.editMode = true;
		if ((el.value == emptyText) || (emptyText == null)) {	//First Time
			emptyText = el.value;
			el.value = "";
			el.setAttribute("emptytext", emptyText);
		}
		el.style.cssText = activeCSS;
	}
	else {								// Was in edit mode. Save values and restore
		el.editMode = false;
		el.style.cssText = inactiveCSS;
		
		if (el.value.replace(/\s/g,"") != "") {					// The value is valid
			el.style.color = validTextColor;
		}
		else {
			if (emptyText == null) {
				emptyText = defaultEmptyText;
				el.setAttribute("emptytext", emptyText);
			}
			el.value = emptyText;
			el.style.color = invalidTextColor;
		}
		
		updateTitle();

	}
}


// Edit the error strings if you like
function submitPost(o) {
	var error = false;
	var errStr = errorString;
	
	var eb = document.all.editbar._editor;
	var nameVar	= visibleName.value;
	var emailVar	= visibleEmail.value;
	var subjectVar = visibleSubject.value;
	
	var text;
	if (eb.format == "HTML") {
		if (ieVersion() >= 5)
			text = "" + myEditor.frames.textEdit.document.documentElement.outerHTML + ""; // This gives the entire doc
		else
			text = "<html>" + myEditor.frames.textEdit.document.body.outerHTML + "</html>";
	}
	else
		text = "" + myEditor.frames.textEdit.document.body.innerText + "";

	var tText = myEditor.frames.textEdit.document.body.outerText;

	if (eb.format == "Text" && !allowSendFromHtml) {
		errStr += htmlModeError;
		error = true;
	}
	if ((nameVar == visibleName.emptytext) || (visibleName.emptytext == null)) {
		errStr += emptyNameError;
		error = true;
	}
	if ((subjectVar == visibleSubject.emptytext) || (visibleSubject.emptytext == null)) {
		errStr += emptySubjectError;
		error = true;
	}
	if (tText.replace(/\s/g,"") == "") {
		errStr += emptyMessageError;
		error = true;
	}
	if (!((emailVar == visibleEmail.emptytext) || (visibleEmail.emptytext == null)) && !validateEmail(emailVar)) {	// Puuh...
		errStr += invalidEmailAdressError;
		error = true;
	}
	
	if (!error) {
	
		if ((emailVar == visibleEmail.emptytext) || (visibleEmail.emptytext == null))
			emailVar = "";
		
		var f = document.forms.postForm
		
		f.name.value = nameVar;
		f.email.value = emailVar;
		f.subject.value = subjectVar;
		f.body.value = text;
		
		if (type != "edit")
			saveCookies(nameVar,emailVar);				
		o.onclick=""
		o.innerHTML="<img src='images/postmessage.gif'>Wait.."
		f.submit();		
	}
	else
		alert(errStr);
}

function validateEmail(str) {		// Basic email validator
	var index = str.indexOf("@")
	if ( (index < 1) ||				// Can't start with @
		 (str.indexOf(".") < 1) ||	// Same here
		 (str.indexOf("\"") > -1) ||	// No " allowed
		 (str.indexOf("'") > -1) ||		// No ' allowed
		 (str.length < 5) ||		// a@b.c is actually a valid adress
		 ((index > 2) && (str.indexOf("@", index+1) != -1)) )	// Only one @ is allowed
			return false;
		
	return true;
}

// You could edit the str here as well
function updateTitle() {
	var str = visibleSubject.getAttribute("value");
	if ((str == visibleSubject.emptytext) || (visibleSubject.emptytext == null))
		str = newMessageTitle;
	str += " - ";
	str += "(" + webBoardTitle + ")"
	document.title = str;
}




// Below is the code for the WYSIWYG toolbar
// There is also code in richedit.js

// Call the formatting command in the editor
function doFormat(what) {
	var eb = document.all.editbar;
	if (eb && eb._editor && eb._editor.execCommand)
		eb._editor.execCommand(what, arguments[1], arguments[2]);
}

// Call the swapmodes command in the editor
function swapMode(el) {
	var eb = document.all.editbar._editor;
	eb.swapModes();
	
	if (eb.format == "HTML") {
		el.innerHTML = sourceCodeModeLabel;
		disableEditBar(false);
	}
	else {
		el.innerHTML = wysiwygModeLabel;
		disableEditBar(true);
	}
}

function disableEditBar(b) {
	formatSelect.children[0].disabled = b;
	fontSelect.children[0].disabled = b;
	sizeSelect.children[0].disabled = b;
	
	for (var i=0; i<editbar.rows[0].cells.length; i++) {
		if (editbar.rows[0].cells[i].className == "coolButton") {
			if (b)
				disable(editbar.rows[0].cells[i]);
			else
				enable(editbar.rows[0].cells[i]);
		}
	}
}

function loadCookies() {
	cName = GetCookie("name");
	cEmail = GetCookie("email");
	
	if (cName != null) {
		visibleName.value = cName;
		visibleName.emptytext = emptyNameText;
		visibleName.style.color = validTextColor;
	}
	
	if (cEmail != null) {
		visibleEmail.value = cEmail;
		visibleEmail.emptytext = emptyEmailText;
		visibleEmail.style.color = validTextColor;
	}
}

function saveCookies(nameVar,emailVar) {
	var d = new Date();
	d.setFullYear(9999);
	SetCookie("name", nameVar,d);
	if (emailVar != "")
		SetCookie("email", emailVar,d);
}

function doSelectClick(str, el) {
	if (el.selectedIndex != -1)
		doFormat(str,el.options[el.selectedIndex].value);
}


// The palette is handled in the scriptlet colorPicker.html
function paletteToggle() {
	palette.style.display = (palette.style.display == "block") ? "none" : "block";
}

⌨️ 快捷键说明

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