📄 edit.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 + -