First commit
This commit is contained in:
BIN
static/image/editor/editor.gif
Normal file
BIN
static/image/editor/editor.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
760
static/image/editor/editor_base.js
Normal file
760
static/image/editor/editor_base.js
Normal file
@@ -0,0 +1,760 @@
|
||||
var gSetColorType = "";
|
||||
var gIsIE = document.all;
|
||||
var gIEVer = fGetIEVer();
|
||||
var gLoaded = false;
|
||||
var ev = null;
|
||||
var gIsHtml = true;
|
||||
var pos = 0;
|
||||
var sLength = 0;
|
||||
|
||||
function fGetEv(e){
|
||||
ev = e;
|
||||
}
|
||||
|
||||
function fGetIEVer(){
|
||||
var iVerNo = 0;
|
||||
var sVer = navigator.userAgent;
|
||||
if(sVer.indexOf("MSIE")>-1){
|
||||
var sVerNo = sVer.split(";")[1];
|
||||
sVerNo = sVerNo.replace("MSIE","");
|
||||
iVerNo = parseFloat(sVerNo);
|
||||
}
|
||||
return iVerNo;
|
||||
}
|
||||
function fSetEditable(){
|
||||
var f = window.frames["HtmlEditor"];
|
||||
f.document.designMode="on";
|
||||
if(!gIsIE)
|
||||
f.document.execCommand("useCSS",false, true);
|
||||
}
|
||||
|
||||
function renewContent() {
|
||||
|
||||
var evalevent = function (obj) {
|
||||
var script = obj.parentNode.innerHTML;
|
||||
var re = /onclick="(.+?)["|>]/ig;
|
||||
var matches = re.exec(script);
|
||||
if(matches != null) {
|
||||
matches[1] = matches[1].replace(/this\./ig, 'obj.');
|
||||
eval(matches[1]);
|
||||
}
|
||||
};
|
||||
|
||||
if(window.confirm('您确定要恢复上次保存?')) {
|
||||
var data = loadUserdata('home');
|
||||
if(in_array((data = trim(data)), ['', 'null', 'false', null, false])) {
|
||||
parent.showDialog('没有可以恢复的数据!');
|
||||
return;
|
||||
}
|
||||
var data = data.split(/\x09\x09/);
|
||||
if(parent.$('subject')) {
|
||||
var formObj = parent.$('subject').form;
|
||||
} else if(parent.$('title')) {
|
||||
var formObj = parent.$('title').form;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
for(var i = 0; i < formObj.elements.length; i++) {
|
||||
var el = formObj.elements[i];
|
||||
if(el.name != '' && (el.tagName == 'TEXTAREA' || el.tagName == 'INPUT' && (el.type == 'text' || el.type == 'checkbox' || el.type == 'radio'))) {
|
||||
for(var j = 0; j < data.length; j++) {
|
||||
var ele = data[j].split(/\x09/);
|
||||
if(ele[0] == el.name) {
|
||||
elvalue = !isUndefined(ele[3]) ? ele[3] : '';
|
||||
if(ele[1] == 'INPUT') {
|
||||
if(ele[2] == 'text') {
|
||||
el.value = elvalue;
|
||||
} else if((ele[2] == 'checkbox' || ele[2] == 'radio') && ele[3] == el.value) {
|
||||
el.checked = true;
|
||||
evalevent(el);
|
||||
}
|
||||
} else if(ele[1] == 'TEXTAREA') {
|
||||
if(ele[0] == 'message' || ele[0] == 'content') {
|
||||
var f = window.frames["HtmlEditor"];
|
||||
f.document.body.innerHTML = elvalue;
|
||||
} else {
|
||||
el.value = elvalue;
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function fSetFrmClick(){
|
||||
var f = window.frames["HtmlEditor"];
|
||||
f.document.onclick = function(){
|
||||
fHideMenu();
|
||||
}
|
||||
if(gIsIE) {
|
||||
f.document.attachEvent("onkeydown", listenKeyDown);
|
||||
} else {
|
||||
f.addEventListener('keydown', function(e) {listenKeyDown(e);}, true);
|
||||
}
|
||||
}
|
||||
|
||||
function listenKeyDown(event) {
|
||||
parent.gIsEdited = true;
|
||||
parent.ctrlEnter(event, 'issuance');
|
||||
}
|
||||
|
||||
window.onload = function(){
|
||||
try{
|
||||
gLoaded = true;
|
||||
fSetEditable();
|
||||
fSetFrmClick();
|
||||
}catch(e){
|
||||
}
|
||||
}
|
||||
|
||||
window.onbeforeunload = parent.edit_save;
|
||||
|
||||
function fSetColor(){
|
||||
var dvForeColor =$("dvForeColor");
|
||||
if(dvForeColor.getElementsByTagName("TABLE").length == 1){
|
||||
dvForeColor.innerHTML = drawCube() + dvForeColor.innerHTML;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
document.onmousemove = function(e){
|
||||
if(gIsIE) var el = event.srcElement;
|
||||
else var el = e.target;
|
||||
var tdView = $("tdView");
|
||||
var tdColorCode = $("tdColorCode");
|
||||
|
||||
if(el.tagName == "IMG"){
|
||||
try{
|
||||
if(fInObj(el, "dvForeColor")){
|
||||
tdView.bgColor = el.parentNode.bgColor;
|
||||
tdColorCode.innerHTML = el.parentNode.bgColor
|
||||
}
|
||||
}catch(e){}
|
||||
}
|
||||
}
|
||||
function fInObj(el, id){
|
||||
if(el){
|
||||
if(el.id == id){
|
||||
return true;
|
||||
}else{
|
||||
if(el.parentNode){
|
||||
return fInObj(el.parentNode, id);
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function fDisplayObj(id){
|
||||
var o = $(id);
|
||||
if(o) o.style.display = "";
|
||||
}
|
||||
document.onclick = function(e){
|
||||
if(gIsIE) var el = event.srcElement;
|
||||
else var el = e.target;
|
||||
var dvForeColor =$("dvForeColor");
|
||||
var dvPortrait =$("dvPortrait");
|
||||
|
||||
if(el.tagName == "IMG"){
|
||||
try{
|
||||
if(fInObj(el, "dvForeColor")){
|
||||
format(gSetColorType, el.parentNode.bgColor);
|
||||
dvForeColor.style.display = "none";
|
||||
return;
|
||||
}
|
||||
}catch(e){}
|
||||
try{
|
||||
if(fInObj(el, "dvPortrait")){
|
||||
format("InsertImage", el.src);
|
||||
dvPortrait.style.display = "none";
|
||||
return;
|
||||
}
|
||||
}catch(e){}
|
||||
}
|
||||
try{
|
||||
if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage")){
|
||||
return;
|
||||
}
|
||||
}catch(e){}
|
||||
fHideMenu();
|
||||
var hideId = "";
|
||||
if(arrMatch[el.id]){
|
||||
hideId = arrMatch[el.id];
|
||||
fDisplayObj(hideId);
|
||||
}
|
||||
}
|
||||
var arrMatch = {
|
||||
imgFontface:"fontface",
|
||||
imgFontsize:"fontsize",
|
||||
imgFontColor:"dvForeColor",
|
||||
imgBackColor:"dvForeColor",
|
||||
imgFace:"dvPortrait",
|
||||
imgAlign:"divAlign",
|
||||
imgList:"divList",
|
||||
imgInOut:"divInOut",
|
||||
faceBox:"editFaceBox",
|
||||
icoUrl:"createUrl",
|
||||
icoSwf:"createSwf",
|
||||
icoPage:"createPage"
|
||||
}
|
||||
function format(type, para){
|
||||
var f = window.frames["HtmlEditor"];
|
||||
var sAlert = "";
|
||||
if(!gIsIE){
|
||||
switch(type){
|
||||
case "Cut":
|
||||
sAlert = "您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl+X)来完成";
|
||||
break;
|
||||
case "Copy":
|
||||
sAlert = "您的浏览器安全设置不允许编辑器自动执行拷贝操作,请使用键盘快捷键(Ctrl+C)来完成";
|
||||
break;
|
||||
case "Paste":
|
||||
sAlert = "您的浏览器安全设置不允许编辑器自动执行粘贴操作,请使用键盘快捷键(Ctrl+V)来完成";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(sAlert != ""){
|
||||
alert(sAlert);
|
||||
return;
|
||||
}
|
||||
f.focus();
|
||||
if(!para){
|
||||
if(gIsIE){
|
||||
f.document.execCommand(type);
|
||||
}else{
|
||||
f.document.execCommand(type,false,false);
|
||||
}
|
||||
}else{
|
||||
if(type == 'insertHTML') {
|
||||
try{
|
||||
f.document.execCommand('insertHTML', false, para);
|
||||
}catch(exp){
|
||||
var obj = f.document.selection.createRange();
|
||||
obj.pasteHTML(para);
|
||||
obj.collapse(false);
|
||||
obj.select();
|
||||
}
|
||||
} else {
|
||||
try{
|
||||
f.document.execCommand(type,false,para);
|
||||
}catch(exp){}
|
||||
}
|
||||
}
|
||||
f.focus();
|
||||
}
|
||||
function setMode(bStatus){
|
||||
var sourceEditor = $("sourceEditor");
|
||||
var HtmlEditor = $("HtmlEditor");
|
||||
var divEditor = $("divEditor");
|
||||
var f = window.frames["HtmlEditor"];
|
||||
var body = f.document.getElementsByTagName("BODY")[0];
|
||||
if(bStatus){
|
||||
sourceEditor.style.display = "block";
|
||||
divEditor.style.display = "none";
|
||||
sourceEditor.value = body.innerHTML;
|
||||
$('uchome-editstatus').value = 'code';
|
||||
}else{
|
||||
sourceEditor.style.display = "none";
|
||||
divEditor.style.display = "";
|
||||
body.innerHTML = sourceEditor.value;
|
||||
$('uchome-editstatus').value = 'html';
|
||||
}
|
||||
}
|
||||
function foreColor(e) {
|
||||
fDisplayColorBoard(e);
|
||||
gSetColorType = "foreColor";
|
||||
}
|
||||
function faceBox(e) {
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
var dvFaceBox = $("editFaceBox");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvFaceBox.style.display = "";
|
||||
dvFaceBox.style.left = (iX-140) + "px";
|
||||
dvFaceBox.style.top = 33 + "px";
|
||||
dvFaceBox.innerHTML = "";
|
||||
var faceul = document.createElement("ul");
|
||||
for(i=1; i<31; i++) {
|
||||
var faceli = document.createElement("li");
|
||||
faceli.innerHTML = '<img src="' + parent.STATICURL + 'image/smiley/comcom/'+i+'.gif" onclick="insertImg(this.src);" class="cur1" />';
|
||||
faceul.appendChild(faceli);
|
||||
}
|
||||
dvFaceBox.appendChild(faceul);
|
||||
return true;
|
||||
}
|
||||
|
||||
function insertImg(src) {
|
||||
format("insertHTML", '<img src="' + src + '"/>');
|
||||
}
|
||||
|
||||
function doodleBox(event, id) {
|
||||
if(parent.$('uchome-ttHtmlEditor') != null) {
|
||||
parent.showWindow(id, 'home.php?mod=magic&mid=doodle&showid=blog_doodle&target=uchome-ttHtmlEditor&from=editor');
|
||||
} else {
|
||||
alert("找不到涂鸦板初始化数据");
|
||||
}
|
||||
}
|
||||
function backColor(e){
|
||||
var sColor = fDisplayColorBoard(e);
|
||||
if(gIsIE)
|
||||
gSetColorType = "backcolor";
|
||||
else
|
||||
gSetColorType = "backcolor";
|
||||
}
|
||||
|
||||
function fDisplayColorBoard(e){
|
||||
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
if(gIEVer<=5.01 && gIsIE){
|
||||
var arr = showModalDialog("ColorSelect.htm", "", "font-family:Verdana; font-size:12; status:no; dialogWidth:21em; dialogHeight:21em");
|
||||
if (arr != null) return arr;
|
||||
return;
|
||||
}
|
||||
var dvForeColor =$("dvForeColor");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvForeColor.style.display = "";
|
||||
dvForeColor.style.left = (iX-30) + "px";
|
||||
dvForeColor.style.top = 33 + "px";
|
||||
return true;
|
||||
}
|
||||
|
||||
function createLink(e, show) {
|
||||
if(typeof show == 'undefined') {
|
||||
var urlObj = $('insertUrl');
|
||||
var sURL = urlObj.value;
|
||||
if ((sURL!=null) && (sURL!="http://")){
|
||||
setCaret();
|
||||
format("CreateLink", sURL);
|
||||
}
|
||||
fHide($('createUrl'));
|
||||
urlObj.value = 'http://';
|
||||
} else {
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
getCaret();
|
||||
var dvUrlBox = $("createUrl");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvUrlBox.style.display = "";
|
||||
dvUrlBox.style.left = (iX-300) + "px";
|
||||
dvUrlBox.style.top = 33 + "px";
|
||||
}
|
||||
}
|
||||
function getCaret() {
|
||||
if(gIsIE){
|
||||
window.frames["HtmlEditor"].focus();
|
||||
var ran = window.frames["HtmlEditor"].document.selection.createRange();
|
||||
pos = ran.getBookmark();
|
||||
}
|
||||
}
|
||||
function setCaret() {
|
||||
if(gIsIE){
|
||||
window.frames["HtmlEditor"].focus();
|
||||
var range = window.frames["HtmlEditor"].document.body.createTextRange();
|
||||
range.moveToBookmark(pos);
|
||||
range.select();
|
||||
pos = null;
|
||||
}
|
||||
}
|
||||
|
||||
function clearLink() {
|
||||
format("Unlink", false);
|
||||
}
|
||||
function createImg(e, show) {
|
||||
if(typeof show == 'undefined') {
|
||||
var imgObj = $('imgUrl');
|
||||
var sPhoto = imgObj.value;
|
||||
if ((sPhoto!=null) && (sPhoto!="http://")){
|
||||
setCaret();
|
||||
format("InsertImage", sPhoto);
|
||||
}
|
||||
fHide($('createImg'));
|
||||
imgObj.value = 'http://';
|
||||
} else {
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
getCaret();
|
||||
var dvImgBox = $("createImg");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvImgBox.style.display = "";
|
||||
dvImgBox.style.left = (iX-300) + "px";
|
||||
dvImgBox.style.top = 33 + "px";
|
||||
}
|
||||
}
|
||||
function createFlash(e, show) {
|
||||
if(typeof show == 'undefined') {
|
||||
var flashtag = '';
|
||||
var vObj = $('videoUrl');
|
||||
var sFlash = vObj.value;
|
||||
if ((sFlash!=null) && (sFlash!="http://")){
|
||||
setCaret();
|
||||
var sFlashType = $('vtype').value;
|
||||
if(sFlashType==1) {
|
||||
flashtag = '[flash=media]';
|
||||
} else if(sFlashType==2) {
|
||||
flashtag = '[flash=real]';
|
||||
} else if(sFlashType==3) {
|
||||
flashtag = '[flash=mp3]';
|
||||
} else {
|
||||
flashtag = '[flash]';
|
||||
}
|
||||
format("insertHTML", flashtag + sFlash + '[/flash]');
|
||||
}
|
||||
fHide($('createSwf'));
|
||||
vObj.value = 'http://';
|
||||
} else {
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
getCaret();
|
||||
var dvSwfBox = $("createSwf");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvSwfBox.style.display = "";
|
||||
dvSwfBox.style.left = (iX-350) + "px";
|
||||
dvSwfBox.style.top = 33 + "px";
|
||||
}
|
||||
}
|
||||
String.prototype.trim = function(){
|
||||
return this.replace(/(^\s*)|(\s*$)/g, "");
|
||||
}
|
||||
function fSetBorderMouseOver(obj) {
|
||||
obj.style.borderRight="1px solid #aaa";
|
||||
obj.style.borderBottom="1px solid #aaa";
|
||||
obj.style.borderTop="1px solid #fff";
|
||||
obj.style.borderLeft="1px solid #fff";
|
||||
}
|
||||
function fSetBorderMouseOut(obj) {
|
||||
obj.style.border="none";
|
||||
}
|
||||
function fSetBorderMouseDown(obj) {
|
||||
obj.style.borderRight="1px #F3F8FC solid";
|
||||
obj.style.borderBottom="1px #F3F8FC solid";
|
||||
obj.style.borderTop="1px #cccccc solid";
|
||||
obj.style.borderLeft="1px #cccccc solid";
|
||||
}
|
||||
function fDisplayElement(element,displayValue) {
|
||||
if(gIEVer<=5.01 && gIsIE){
|
||||
alert('只支持IE 5.01以上版本');
|
||||
return;
|
||||
}
|
||||
fHideMenu();
|
||||
if ( typeof element == "string" )
|
||||
element = $(element);
|
||||
if (element == null) return;
|
||||
element.style.display = displayValue;
|
||||
if(gIsIE){
|
||||
var e = event;
|
||||
var target = e.srcElement;
|
||||
}else{
|
||||
var e = ev;
|
||||
var target = e.target;
|
||||
}
|
||||
var iX = f_GetX(target);
|
||||
element.style.display = "";
|
||||
element.style.left = (iX) + "px";
|
||||
element.style.top = 33 + "px";
|
||||
return true;
|
||||
}
|
||||
function fSetModeTip(obj){
|
||||
var x = f_GetX(obj);
|
||||
var y = f_GetY(obj);
|
||||
var dvModeTip = $("dvModeTip");
|
||||
if(!dvModeTip){
|
||||
var dv = document.createElement("DIV");
|
||||
dv.style.position = "absolute";
|
||||
dv.style.top = 33 + "px";
|
||||
dv.style.left = (x-40) + "px";
|
||||
dv.style.zIndex = "999";
|
||||
dv.style.fontSize = "12px";
|
||||
dv.id = "dvModeTip";
|
||||
dv.style.padding = "2px";
|
||||
dv.style.border = "1px #000000 solid";
|
||||
dv.style.backgroundColor = "#FFFFCC";
|
||||
dv.innerHTML = "编辑源码";
|
||||
document.body.appendChild(dv);
|
||||
}else{
|
||||
dvModeTip.style.display = "";
|
||||
}
|
||||
}
|
||||
function fHideTip(){
|
||||
$("dvModeTip").style.display = "none";
|
||||
}
|
||||
function f_GetX(e)
|
||||
{
|
||||
var l=e.offsetLeft;
|
||||
while(e=e.offsetParent){
|
||||
l+=e.offsetLeft;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
function f_GetY(e)
|
||||
{
|
||||
var t=e.offsetTop;
|
||||
while(e=e.offsetParent){
|
||||
t+=e.offsetTop;
|
||||
}
|
||||
return t;
|
||||
}
|
||||
function fHideMenu(){
|
||||
try{
|
||||
var arr = ["fontface", "fontsize", "dvForeColor", "dvPortrait", "divAlign", "divList" ,"divInOut", "editFaceBox", "createUrl", "createImg", "createSwf", "createPage"];
|
||||
for(var i=0;i<arr.length;i++){
|
||||
var obj = $(arr[i]);
|
||||
if(obj){
|
||||
obj.style.display = "none";
|
||||
}
|
||||
}
|
||||
try{
|
||||
parent.LetterPaper.control(window, "hide");
|
||||
}catch(exp){}
|
||||
}catch(exp){}
|
||||
}
|
||||
|
||||
function $(id){
|
||||
return document.getElementById(id);
|
||||
}
|
||||
function fHide(obj){
|
||||
obj.style.display="none";
|
||||
}
|
||||
|
||||
function pageBreak(e, show) {
|
||||
if(!show) {
|
||||
var obj = $('pageTitle');
|
||||
var title = obj ? obj.value : '';
|
||||
if(obj) {
|
||||
obj.value = '';
|
||||
}
|
||||
var insertText = title ? '[title='+title+']': '';
|
||||
setCaret();
|
||||
format("insertHTML", '<br /><strong>##########NextPage'+insertText+'##########</strong><br /><br />');
|
||||
if(parent.showInnerNav && typeof parent.showInnerNav == 'function') {
|
||||
parent.showInnerNav();
|
||||
}
|
||||
fHide($('createPage'));
|
||||
} else {
|
||||
if(gIsIE){
|
||||
var e = window.event;
|
||||
}
|
||||
getCaret();
|
||||
var dvSwfBox = $("createPage");
|
||||
var iX = e.clientX;
|
||||
var iY = e.clientY;
|
||||
dvSwfBox.style.display = "";
|
||||
dvSwfBox.style.left = (iX-300) + "px";
|
||||
dvSwfBox.style.top = 33 + "px";
|
||||
}
|
||||
}
|
||||
function changeEditType(flag, ev){
|
||||
gIsHtml = flag;
|
||||
try{
|
||||
var mod = parent.MM["compose"];
|
||||
mod.html = flag;
|
||||
}catch(exp){}
|
||||
try{
|
||||
var dvhtml = $("dvhtml");
|
||||
var dvtext = $("dvtext");
|
||||
var HtmlEditor = window.frames["HtmlEditor"];
|
||||
var ifmHtmlEditor = $("HtmlEditor");
|
||||
var sourceEditor = $("sourceEditor");
|
||||
var switchMode = $("switchMode");
|
||||
var sourceEditor = $("sourceEditor");
|
||||
var dvHtmlLnk = $("dvHtmlLnk");
|
||||
var dvToolbar = $('dvToolbar');
|
||||
if(flag){
|
||||
dvhtml.style.display = "";
|
||||
dvtext.style.display = "none";
|
||||
dvToolbar.className = 'toobar';
|
||||
|
||||
if(switchMode.checked){
|
||||
sourceEditor.value = dvtext.value;
|
||||
$('uchome-editstatus').value = 'code';
|
||||
}else{
|
||||
if(document.all){
|
||||
HtmlEditor.document.body.innerText = dvtext.value;
|
||||
} else {
|
||||
HtmlEditor.document.body.innerHTML = dvtext.value.unescapeHTML();
|
||||
}
|
||||
$('uchome-editstatus').value = 'html';
|
||||
}
|
||||
}else{
|
||||
function sub1(){
|
||||
dvhtml.style.display = "none";
|
||||
dvtext.style.display = "";
|
||||
dvToolbar.className = 'toobarmini';
|
||||
if(switchMode.checked){
|
||||
dvtext.value = sourceEditor.value.unescapeHTML();
|
||||
}else{
|
||||
if(document.all){
|
||||
dvtext.value = HtmlEditor.document.body.innerText;
|
||||
}else{
|
||||
dvtext.value = HtmlEditor.document.body.innerHTML.unescapeHTML();
|
||||
}
|
||||
}
|
||||
}
|
||||
ev = ev || event;
|
||||
if(ev){
|
||||
if(window.confirm("转换为纯文本时将会遗失某些格式。\n您确定要继续吗?")){
|
||||
$('uchome-editstatus').value = 'text';
|
||||
sub1();
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch(exp){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function changeEditFull(flag, ev) {
|
||||
if(parent.changeEditFull) {
|
||||
parent.changeEditFull(flag);
|
||||
ev = ev || event;
|
||||
var ele = ev.target || ev.srcElement;
|
||||
ele.innerHTML = flag ? '返回' : '全屏';
|
||||
ele.onclick = function() {changeEditFull(!flag, ev)};
|
||||
}
|
||||
}
|
||||
String.prototype.stripTags = function(){
|
||||
return this.replace(/<\/?[^>]+>/gi, '');
|
||||
};
|
||||
String.prototype.unescapeHTML = function(){
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = this.stripTags();
|
||||
return div.childNodes[0].nodeValue;
|
||||
};
|
||||
var s = "";
|
||||
var hex = new Array(6)
|
||||
hex[0] = "FF"
|
||||
hex[1] = "CC"
|
||||
hex[2] = "99"
|
||||
hex[3] = "66"
|
||||
hex[4] = "33"
|
||||
hex[5] = "00"
|
||||
function drawCell(red, green, blue) {
|
||||
var color = '#' + red + green + blue;
|
||||
if(color == "#000066") color = "#000000";
|
||||
s += '<TD BGCOLOR="' + color + '" style="height:12px;width:12px;" >';
|
||||
s += '<IMG '+ ((document.all)?"":"src='editor_none.gif'") +' HEIGHT=12 WIDTH=12>';
|
||||
s += '</TD>';
|
||||
}
|
||||
function drawRow(red, blue) {
|
||||
s += '<TR>';
|
||||
|
||||
for (var i = 0; i < 6; ++i) {
|
||||
drawCell(red, hex[i], blue)
|
||||
}
|
||||
s += '</TR>';
|
||||
}
|
||||
function drawTable(blue) {
|
||||
s += '<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0>';
|
||||
for (var i = 0; i < 6; ++i) {
|
||||
drawRow(hex[i], blue)
|
||||
}
|
||||
s += '</TABLE>';
|
||||
}
|
||||
function drawCube() {
|
||||
s += '<TABLE CELLPADDING=0 CELLSPACING=0 style="border:1px #888888 solid"><TR>';
|
||||
for (var i = 0; i < 2; ++i) {
|
||||
s += '<TD BGCOLOR="#FFFFFF">';
|
||||
drawTable(hex[i])
|
||||
s += '</TD>';
|
||||
}
|
||||
s += '</TR><TR>';
|
||||
for (var i = 2; i < 4; ++i) {
|
||||
s += '<TD BGCOLOR="#FFFFFF">';
|
||||
drawTable(hex[i])
|
||||
s += '</TD>';
|
||||
}
|
||||
s += '</TR></TABLE>';
|
||||
return s;
|
||||
}
|
||||
|
||||
function EV(){}
|
||||
EV.getTarget = fGetTarget;
|
||||
EV.getEvent = fGetEvent;
|
||||
EV.stopEvent = fStopEvent;
|
||||
EV.stopPropagation = fStopPropagation;
|
||||
EV.preventDefault = fPreventDefault;
|
||||
|
||||
|
||||
function fGetTarget(ev, resolveTextNode){
|
||||
if(!ev) ev = this.getEvent();
|
||||
var t = ev.target || ev.srcElement;
|
||||
|
||||
if (resolveTextNode && t && "#text" == t.nodeName) {
|
||||
return t.parentNode;
|
||||
} else {
|
||||
return t;
|
||||
}
|
||||
}
|
||||
|
||||
function fGetEvent (e) {
|
||||
var ev = e || window.event;
|
||||
|
||||
if (!ev) {
|
||||
var c = this.getEvent.caller;
|
||||
while (c) {
|
||||
ev = c.arguments[0];
|
||||
if (ev && Event == ev.constructor) {
|
||||
break;
|
||||
}
|
||||
c = c.caller;
|
||||
}
|
||||
}
|
||||
|
||||
return ev;
|
||||
}
|
||||
|
||||
function fStopEvent(ev) {
|
||||
if(!ev) ev = this.getEvent();
|
||||
this.stopPropagation(ev);
|
||||
this.preventDefault(ev);
|
||||
}
|
||||
|
||||
|
||||
function fStopPropagation(ev) {
|
||||
if(!ev) ev = this.getEvent();
|
||||
if (ev.stopPropagation) {
|
||||
ev.stopPropagation();
|
||||
} else {
|
||||
ev.cancelBubble = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function fPreventDefault(ev) {
|
||||
if(!ev) ev = this.getEvent();
|
||||
if (ev.preventDefault) {
|
||||
ev.preventDefault();
|
||||
} else {
|
||||
ev.returnValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
function getExt(path) {
|
||||
return path.lastIndexOf('.') == -1 ? '' : path.substr(path.lastIndexOf('.') + 1, path.length).toLowerCase();
|
||||
}
|
||||
|
||||
function checkURL(obj, mod) {
|
||||
if(mod) {
|
||||
if(obj.value == 'http://') {
|
||||
obj.value = '';
|
||||
}
|
||||
} else {
|
||||
if(obj.value == '') {
|
||||
obj.value = 'http://';
|
||||
}
|
||||
}
|
||||
}
|
BIN
static/image/editor/editor_boolbar.gif
Normal file
BIN
static/image/editor/editor_boolbar.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.0 KiB |
BIN
static/image/editor/editor_file_thumb.png
Normal file
BIN
static/image/editor/editor_file_thumb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 451 B |
217
static/image/editor/editor_function.js
Normal file
217
static/image/editor/editor_function.js
Normal file
@@ -0,0 +1,217 @@
|
||||
function uploadEdit(obj) {
|
||||
mainForm = obj.form;
|
||||
forms = $('attachbody').getElementsByTagName("FORM");
|
||||
albumid = $('uploadalbum').value;
|
||||
edit_save();
|
||||
upload();
|
||||
}
|
||||
|
||||
function edit_save() {
|
||||
var p = window.frames['uchome-ifrHtmlEditor'];
|
||||
var obj = p.window.frames['HtmlEditor'];
|
||||
var status = p.document.getElementById('uchome-editstatus').value;
|
||||
if(status == 'code') {
|
||||
$('uchome-ttHtmlEditor').value = p.document.getElementById('sourceEditor').value;
|
||||
} else if(status == 'text') {
|
||||
if(BROWSER.ie) {
|
||||
obj.document.body.innerText = p.document.getElementById('dvtext').value;
|
||||
$('uchome-ttHtmlEditor').value = obj.document.body.innerHTML;
|
||||
} else {
|
||||
obj.document.body.textContent = p.document.getElementById('dvtext').value;
|
||||
var sOutText = obj.document.body.innerHTML;
|
||||
$('uchome-ttHtmlEditor').value = sOutText.replace(/\r\n|\n/g,"<br>");
|
||||
}
|
||||
} else {
|
||||
$('uchome-ttHtmlEditor').value = obj.document.body.innerHTML;
|
||||
}
|
||||
backupContent($('uchome-ttHtmlEditor').value);
|
||||
}
|
||||
|
||||
function downRemoteFile() {
|
||||
edit_save();
|
||||
var formObj = $("articleform");
|
||||
var oldAction = formObj.action;
|
||||
formObj.action = "portal.php?mod=portalcp&ac=upload&op=downremotefile";
|
||||
formObj.onSubmit = "";
|
||||
formObj.target = "uploadframe";
|
||||
formObj.submit();
|
||||
formObj.action = oldAction;
|
||||
formObj.target = "";
|
||||
}
|
||||
function backupContent(sHTML) {
|
||||
if(sHTML.length > 11) {
|
||||
var obj = $('uchome-ttHtmlEditor').form;
|
||||
if(!obj) return;
|
||||
var data = subject = message = '';
|
||||
for(var i = 0; i < obj.elements.length; i++) {
|
||||
var el = obj.elements[i];
|
||||
if(el.name != '' && (el.tagName == 'TEXTAREA' || el.tagName == 'INPUT' && (el.type == 'text' || el.type == 'checkbox' || el.type == 'radio')) && el.name.substr(0, 6) != 'attach') {
|
||||
var elvalue = el.value;
|
||||
if(el.name == 'subject' || el.name == 'title') {
|
||||
subject = trim(elvalue);
|
||||
} else if(el.name == 'message' || el.name == 'content') {
|
||||
message = trim(elvalue);
|
||||
}
|
||||
if((el.type == 'checkbox' || el.type == 'radio') && !el.checked) {
|
||||
continue;
|
||||
}
|
||||
if(trim(elvalue)) {
|
||||
data += el.name + String.fromCharCode(9) + el.tagName + String.fromCharCode(9) + el.type + String.fromCharCode(9) + elvalue + String.fromCharCode(9, 9);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!subject && !message) {
|
||||
return;
|
||||
}
|
||||
saveUserdata('home', data);
|
||||
}
|
||||
}
|
||||
|
||||
function edit_insert(html) {
|
||||
var p = window.frames['uchome-ifrHtmlEditor'];
|
||||
var obj = p.window.frames['HtmlEditor'];
|
||||
var status = p.document.getElementById('uchome-editstatus').value;
|
||||
if(status != 'html') {
|
||||
alert('本操作只在多媒体编辑模式下才有效');
|
||||
return;
|
||||
}
|
||||
obj.focus();
|
||||
if(BROWSER.ie){
|
||||
var f = obj.document.selection.createRange();
|
||||
f.pasteHTML(html);
|
||||
f.collapse(false);
|
||||
f.select();
|
||||
} else {
|
||||
obj.document.execCommand('insertHTML', false, html);
|
||||
}
|
||||
}
|
||||
|
||||
function insertImage(image, url, width, height) {
|
||||
url = typeof url == 'undefined' || url === null ? image : url;
|
||||
width = typeof width == 'undefined' || width === null ? 0 : parseInt(width);
|
||||
height = typeof height == 'undefined' || height === null ? 0 : parseInt(height);
|
||||
var html = '<p><a href="' + url + '" target="_blank"><img src="'+image+'"'+(width?' width="'+width+'"':'')+(height?' height="'+height+'"':'')+'></a></p>';
|
||||
edit_insert(html);
|
||||
}
|
||||
|
||||
function insertFile(file, url) {
|
||||
url = typeof url == 'undefined' || url === null ? image : url;
|
||||
var html = '<p><a href="' + url + '" target="_blank" class="attach">' + file + '</a></p>';
|
||||
edit_insert(html);
|
||||
}
|
||||
|
||||
function createImageBox(fn) {
|
||||
if(typeof fn == 'function' && !fn()) {
|
||||
return false;
|
||||
}
|
||||
var menu = $('icoImg_image_menu');
|
||||
if(menu) {
|
||||
if(menu.style.visibility == 'hidden') {
|
||||
menu.style.visibility = 'visible';
|
||||
} else {
|
||||
menu.style.width = '600px';
|
||||
showMenu({'ctrlid':'icoImg_image','mtype':'win','evt':'click','pos':'00','timeout':250,'duration':3,'drag':'icoImg_image_ctrl'});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createAttachBox(fn) {
|
||||
if(typeof fn == 'function' && !fn()) {
|
||||
return false;
|
||||
}
|
||||
var menu = $('icoAttach_attach_menu');
|
||||
if(menu) {
|
||||
if(menu.style.visibility == 'hidden') {
|
||||
menu.style.visibility = 'visible';
|
||||
} else {
|
||||
menu.style.width = '600px';
|
||||
showMenu({'ctrlid':'icoAttach_attach','mtype':'win','evt':'click','pos':'00','timeout':250,'duration':3,'drag':'icoAttach_attach_ctrl'});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function switchButton(btn, type) {
|
||||
var btnpre = 'icoImg_btn_';
|
||||
if(!$(btnpre + btn) || !$('icoImg_' + btn)) {
|
||||
return;
|
||||
}
|
||||
var tabs = $('icoImg_' + type + '_ctrl').getElementsByTagName('LI');
|
||||
$(btnpre + btn).style.display = '';
|
||||
$('icoImg_' + btn).style.display = '';
|
||||
$(btnpre + btn).className = 'current';
|
||||
var btni = '';
|
||||
for(i = 0;i < tabs.length;i++) {
|
||||
if(tabs[i].id.indexOf(btnpre) !== -1) {
|
||||
btni = tabs[i].id.substr(btnpre.length);
|
||||
}
|
||||
if(btni != btn) {
|
||||
if(!$('icoImg_' + btni) || !$('icoImg_btn_' + btni)) {
|
||||
continue;
|
||||
}
|
||||
$('icoImg_' + btni).style.display = 'none';
|
||||
$('icoImg_btn_' + btni).className = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function changeEditFull(flag) {
|
||||
var ifrHtmlEditor = $('uchome-ifrHtmlEditor');
|
||||
var editor = ifrHtmlEditor.parentNode;
|
||||
if(flag) {
|
||||
document.body.scroll = 'no';
|
||||
document.body.style.overflow = 'hidden';
|
||||
window.resize = function(){changeEditFull(1)};
|
||||
editor.style.top = '0';
|
||||
editor.style.left = '0';
|
||||
editor.style.position = 'fixed';
|
||||
editor.style.width = '100%';
|
||||
editor.setAttribute('srcheight', editor.style.height);
|
||||
editor.style.height = '100%';
|
||||
editor.style.minWidth = '800px';
|
||||
editor.style.zIndex = '300';
|
||||
ifrHtmlEditor.style.height = '100%';
|
||||
ifrHtmlEditor.style.zoom = ifrHtmlEditor.style.zoom=="1"?"100%":"1";
|
||||
} else {
|
||||
document.body.scroll = 'yes';
|
||||
document.body.style.overflow = 'auto';
|
||||
window.resize = null;
|
||||
editor.style.position = '';
|
||||
editor.style.width = '';
|
||||
editor.style.height = editor.getAttribute('srcheight');
|
||||
}
|
||||
doane();
|
||||
}
|
||||
|
||||
function showInnerNav(){
|
||||
var navtitle = $('innernavele');
|
||||
var pagetitle = $('pagetitle');
|
||||
if(navtitle && navtitle.style.display == 'none') {
|
||||
navtitle.style.display = '';
|
||||
}
|
||||
if(pagetitle && pagetitle.style.display == 'none') {
|
||||
pagetitle.style.display = '';
|
||||
}
|
||||
}
|
||||
|
||||
function loadimgsize(imgurl, editor, p) {
|
||||
var editor = !editor ? 'icoImg' : editor;
|
||||
var s = new Object();
|
||||
var p = !p ? '_image' : p;
|
||||
$(editor + p + '_param_2').value = '';
|
||||
$(editor + p + '_param_3').value = '';
|
||||
s.img = new Image();
|
||||
s.img.src = imgurl;
|
||||
s.loadCheck = function () {
|
||||
if($(editor + p + '_param_1').value == imgurl) {
|
||||
if(s.img.complete) {
|
||||
$(editor + p + '_param_2').value = s.img.width ? s.img.width : '';
|
||||
$(editor + p + '_param_3').value = s.img.height ? s.img.height : '';
|
||||
} else {
|
||||
setTimeout(function () {s.loadCheck();}, 100);
|
||||
}
|
||||
}
|
||||
};
|
||||
s.loadCheck();
|
||||
}
|
BIN
static/image/editor/editor_none.gif
Normal file
BIN
static/image/editor/editor_none.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 B |
0
static/image/editor/index.htm
Normal file
0
static/image/editor/index.htm
Normal file
BIN
static/image/editor/resize.gif
Normal file
BIN
static/image/editor/resize.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 71 B |
Reference in New Issue
Block a user