📄 post.js
字号:
}
if(swfuploaded) {
swfattachlistupdate(action);
}
} else if(action == 3) {
swfuploaded = 0;
pagescroll.right(1, '$(\'swfuploadbox\').style.display = $(\'swfbox\').style.display = \'\';');
}
}
function swfattachlistupdate(action) {
ajaxget('ajax.php?action=swfattachlist', 'swfattachlist', 'swfattachlist', 'swfattachlist', null, '$(\'uploadlist\').scrollTop=10000');
attachlist('open');
$('postform').updateswfattach.value = 1;
}
function appendreply() {
newpos = fetchOffset($('post_new'));
document.documentElement.scrollTop = newpos['top'];
$('post_new').style.display = '';
$('post_new').id = '';
div = document.createElement('div');
div.id = 'post_new';
div.style.display = 'none';
div.className = '';
$('postlistreply').appendChild(div);
$('postform').replysubmit.disabled = false;
creditnoticewin();
}
var Editorwin = 0;
function resizeEditorwin() {
var obj = $('resizeEditorwin');
floatwin('size_' + editoraction);
$('editorbox').style.height = $('floatlayout_' + editoraction).style.height = $('floatwin_' + editoraction).style.height;
if(!Editorwin) {
obj.className = 'float_min';
obj.title = obj.innerHTML = '还原大小';
$('editorbox').style.width = $('floatlayout_' + editoraction).style.width = (parseInt($('floatwin_' + editoraction).style.width) - 10)+ 'px';
$('editorbox').style.left = '0px';
$('editorbox').style.top = '0px';
$('swfuploadbox').style.display = $('custominfoarea').style.display = $('creditlink').style.display = $('morelink').style.display = 'none';
if(wysiwyg) {
$('e_iframe').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
}
$('e_textarea').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
attachlist('close');
Editorwin = 1;
} else {
obj.className = 'float_max';
obj.title = obj.innerHTML = '最大化';
$('editorbox').style.width = $('floatlayout_' + editoraction).style.width = '600px';
$('swfuploadbox').style.display = $('custominfoarea').style.display = $('creditlink').style.display = $('morelink').style.display = '';
if(wysiwyg) {
$('e_iframe').style.height = '';
}
$('e_textarea').style.height = '';
swfuploadwin();
Editorwin = 0;
}
}
function closeEditorwin() {
if(Editorwin) {
resizeEditorwin();
}
floatwin('close_' + editoraction);
}
function editorwindowopen(url) {
data = wysiwyg ? editdoc.body.innerHTML : textobj.value;
saveData(data);
url += '&cedit=' + (data !== '' ? 'yes' : 'no');
window.open(url);
}
function swfuploadwin() {
if(Editorwin) {
if($('swfuploadbox').style.display == 'none') {
$('swfuploadbox').className = 'floatbox floatbox1 floatboxswf floatwin swfwin';
$('swfuploadbox').style.position = 'absolute';
width = (parseInt($('floatlayout_' + editoraction).style.width) - 604) / 2;
$('swfuploadbox').style.left = width + 'px';
$('swfuploadbox').style.display = $('swfclosebtn').style.display = $('swfbox').style.display = '';
} else {
$('swfuploadbox').className = 'floatbox floatbox1 floatboxswf';
$('swfuploadbox').style.position = $('swfuploadbox').style.left = '';
$('swfuploadbox').style.display = $('swfclosebtn').style.display = 'none';
}
} else {
if(infloat) {
pagescrolls('swf');
} else {
if($('swfuploadbox').style.display == 'none') {
$('swfuploadbox').style.display = $('swfbox').style.display = $('swfclosebtn').style.display = '';
} else {
$('swfuploadbox').style.display = $('swfbox').style.display = $('swfclosebtn').style.display = 'none';
}
}
}
}
var editbox = editwin = editdoc = editcss = null;
var cursor = -1;
var stack = new Array();
var initialized = false;
function newEditor(mode, initialtext) {
wysiwyg = parseInt(mode);
if(!(is_ie || is_moz || (is_opera >= 9))) {
allowswitcheditor = wysiwyg = 0;
}
if(!allowswitcheditor) {
$(editorid + '_switcher').style.display = 'none';
}
$(editorid + '_cmd_table').style.display = wysiwyg ? '' : 'none';
if(wysiwyg) {
if($(editorid + '_iframe')) {
editbox = $(editorid + '_iframe');
} else {
var iframe = document.createElement('iframe');
editbox = textobj.parentNode.appendChild(iframe);
editbox.id = editorid + '_iframe';
}
editwin = editbox.contentWindow;
editdoc = editwin.document;
writeEditorContents(isUndefined(initialtext) ? textobj.value : initialtext);
} else {
editbox = editwin = editdoc = textobj;
if(!isUndefined(initialtext)) {
writeEditorContents(initialtext);
}
addSnapshot(textobj.value);
}
setEditorEvents();
initEditor();
}
function initEditor() {
var buttons = $(editorid + '_controls').getElementsByTagName('a');
for(var i = 0; i < buttons.length; i++) {
if(buttons[i].id.indexOf(editorid + '_cmd_') != -1) {
buttons[i].href = 'javascript:;';
buttons[i].onclick = function(e) {discuzcode(this.id.substr(this.id.lastIndexOf('_cmd_') + 5))};
} else if(buttons[i].id.indexOf(editorid + '_popup_') != -1) {
buttons[i].href = 'javascript:;';
buttons[i].onclick = function(e) {InFloat = InFloat_Editor;showMenu(this.id, true, 0, 2)};
}
}
setUnselectable($(editorid + '_controls'));
textobj.onkeydown = function(e) {ctlent(e ? e : event)};
}
function setUnselectable(obj) {
if(is_ie && is_ie > 4 && typeof obj.tagName != 'undefined') {
if(obj.hasChildNodes()) {
for(var i = 0; i < obj.childNodes.length; i++) {
setUnselectable(obj.childNodes[i]);
}
}
obj.unselectable = 'on';
}
}
function writeEditorContents(text) {
if(wysiwyg) {
if(text == '' && is_moz) {
text = '<br />';
}
if(initialized && !(is_moz && is_moz >= 3)) {
editdoc.body.innerHTML = text;
} else {
editdoc.designMode = 'on';
editdoc = editwin.document;
editdoc.open('text/html', 'replace');
editdoc.write(text);
editdoc.close();
editdoc.body.contentEditable = true;
initialized = true;
}
} else {
textobj.value = text;
}
setEditorStyle();
}
function getEditorContents() {
return wysiwyg ? editdoc.body.innerHTML : editdoc.value;
}
function setEditorStyle() {
if(wysiwyg) {
textobj.style.display = 'none';
editbox.style.display = '';
editbox.className = textobj.className;
var headNode = editdoc.getElementsByTagName("head")[0];
if(!headNode.getElementsByTagName('link').length) {
editcss = editdoc.createElement('link');
editcss.type = 'text/css';
editcss.rel = 'stylesheet';
editcss.href = editorcss;
headNode.appendChild(editcss);
}
if(is_moz || is_opera) {
editbox.style.border = '0px';
} else if(is_ie) {
editdoc.body.style.border = '0px';
editdoc.body.addBehavior('#default#userData');
}
editbox.style.width = textobj.style.width;
editbox.style.height = textobj.style.height;
editdoc.body.style.backgroundColor = TABLEBG;
editdoc.body.style.textAlign = 'left';
editdoc.body.id = 'wysiwyg';
if(is_ie) {
try{$('subject').focus();} catch(e) {editwin.focus();}
}
} else {
var iframe = textobj.parentNode.getElementsByTagName('iframe')[0];
if(iframe) {
textobj.style.display = '';
textobj.style.width = iframe.style.width;
textobj.style.height = iframe.style.height;
iframe.style.display = 'none';
}
if(is_ie) {
try{$('subject').focus();} catch(e) {textobj.focus();}
}
}
}
function setEditorEvents() {
if(wysiwyg) {
if(is_moz || is_opera) {
editwin.addEventListener('focus', function(e) {this.hasfocus = true;}, true);
editwin.addEventListener('blur', function(e) {this.hasfocus = false;}, true);
editwin.addEventListener('keydown', function(e) {ctlent(e);ctltab(e);}, true);
} else {
if(editdoc.attachEvent) {
editdoc.body.attachEvent("onkeydown", ctlent);
editdoc.body.attachEvent("onkeydown", ctltab);
}
}
}
editwin.onfocus = function(e) {this.hasfocus = true;};
editwin.onblur = function(e) {this.hasfocus = false;};
}
function wrapTags(tagname, useoption, selection) {
if(isUndefined(selection)) {
var selection = getSel();
if(selection === false) {
selection = '';
} else {
selection += '';
}
}
if(useoption !== false) {
var opentag = '[' + tagname + '=' + useoption + ']';
} else {
var opentag = '[' + tagname + ']';
}
var closetag = '[/' + tagname + ']';
var text = opentag + selection + closetag;
insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide']) ? true : false);
}
function applyFormat(cmd, dialog, argument) {
if(wysiwyg) {
editdoc.execCommand(cmd, (isUndefined(dialog) ? false : dialog), (isUndefined(argument) ? true : argument));
return;
}
switch(cmd) {
case 'bold':
case 'italic':
case 'underline':
wrapTags(cmd.substr(0, 1), false);
break;
case 'justifyleft':
case 'justifycenter':
case 'justifyright':
wrapTags('align', cmd.substr(7));
break;
case 'floatleft':
case 'floatright':
wrapTags('float', cmd.substr(5));
break;
case 'indent':
wrapTags(cmd, false);
break;
case 'fontname':
wrapTags('font', argument);
break;
case 'fontsize':
wrapTags('size', argument);
break;
case 'forecolor':
wrapTags('color', argument);
break;
case 'createlink':
var sel = getSel();
if(sel) {
wrapTags('url', argument);
} else {
wrapTags('url', argument, argument);
}
break;
case 'insertimage':
wrapTags('img', false, argument);
break;
}
}
function getCaret() {
if(wysiwyg) {
var obj = editdoc.body;
var s = document.selection.createRange();
s.setEndPoint("StartToStart", obj.createTextRange());
return s.text.replace(/\r?\n/g, ' ').length;
} else {
var obj = editbox;
var wR = document.selection.createRange();
obj.select();
var aR = document.selection.createRange();
wR.setEndPoint("StartToStart", aR);
var len = wR.text.replace(/\r?\n/g, ' ').length;
wR.collapse(false);
wR.select();
return len;
}
}
function setCaret(pos) {
var obj = wysiwyg ? editdoc.body : editbox;
var r = obj.createTextRange();
r.moveStart('character', pos);
r.collapse(true);
r.select();
}
function insertlink(cmd) {
var sel;
if(is_ie) {
sel = wysiwyg ? editdoc.selection.createRange() : document.selection.createRange();
var pos = getCaret();
}
var selection = sel ? (wysiwyg ? sel.htmlText : sel.text) : getSel();
if(cmd == 'createlink' && is_ie && wysiwyg && selection === undefined) {
applyFormat("createlink", true, null);
return;
}
var ctrlid = editorid + '_cmd_' + cmd;
var tag = cmd == 'createlink' ? 'url' : 'email';
var str = (tag == 'url' ? '请输入链接的地址:' : '请输入此链接的邮箱地址:') + '<br /><input type="text" id="' + ctrlid + '_param_1" style="width: 98%" value="" class="txt" />';
var div = editorMenu(ctrlid, str);
$(ctrlid + '_param_1').focus();
$(ctrlid + '_param_1').onkeydown = editorMenuEvent_onkeydown;
$(ctrlid + '_submit').onclick = function() {
checkFocus();
if(is_ie) {
setCaret(pos);
}
var input = $(ctrlid + '_param_1').value;
if(input != '') {
var v = selection ? selection : input;
var href = tag != 'email' && /^(www\.)/.test(input) ? 'http://' + input : input;
var text = wysiwyg ? ('<a href="' + (tag == 'email' ? 'mailto:' : '') + href + '">' + v + '</a>') : '[' + tag + '=' + href + ']' + v + '[/' + tag + ']';
var closetaglen = tag == 'email' ? 8 : 6;
if(wysiwyg) insertText(text, text.length - v.length, 0, (selection ? true : false), sel);
else insertText(text, text.length - v.length - closetaglen, closetaglen, (selection ? true : false), sel);
}
hideMenu();
div.parentNode.removeChild(div);
}
}
function insertimage(cmd) {
InFloat = InFloat_Editor;showMenu(editorid + '_cmd_' + cmd, true, 0, 3);
}
function insertimagesubmit() {
if(wysiwyg) {
insertText('<img src='+$(editorid + '_cmd_insertimage_param_url').value+' border=0 /> ', false);
} else {
insertText('[img]'+$(editorid + '_cmd_insertimage_param_url').value+'[/img]');
}
hideMenu();
}
function insertSmiley(smilieid) {
checkFocus();
var src = $('smilie_' + smilieid).src;
var code = $('smilie_' + smilieid).alt;
if(typeof wysiwyg != 'undefined' && wysiwyg && allowsmilies && (!$('smileyoff') || $('smileyoff').checked == false)) {
if(is_moz) {
applyFormat('InsertImage', false, src);
var smilies = editdoc.body.getElementsByTagName('img');
for(var i = 0; i < smilies.length; i++) {
if(smilies[i].src == src && smilies[i].getAttribute('smilieid') < 1) {
smilies[i].setAttribute('smilieid', smilieid);
smilies[i].setAttribute('border', "0");
}
}
} else {
insertText('<img src="' + src + '" border="0" smilieid="' + smilieid + '" alt="" /> ', false);
}
} else {
code += ' ';
AddText(code);
}
hideMenu();
}
function editorMenuEvent_onkeydown(e) {
e = e ? e : event;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -