📄 dhtmledit1.js
字号:
col = ss[2];
autostart = ss[3];
ran = rand();
var string;
//string="<object classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' width='"+row+"' height='"+col+"'><param name='CONTROLS' value='ImageWindow'><param name='CONSOLE' value='Clip'><param name='AUTOSTART' value='"+ autostart +"'><param name=src value="+path+"></object><br><object classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' width="+row+" height=32><param name='CONTROLS' value='ControlPanel,StatusBar'><param name='CONSOLE' value='Clip'></object>";
string = "[RM="+ row +","+ col +","+ autostart +"]"+ path +"[/RM]";
IframeID.document.body.innerHTML+=string;
}
else IframeID.focus();
}
//图片与链接事件
function Dvbbs_UserDialog(what)
{
if (!Dvbbs_validateMode()) return;
IframeID.focus();
//插入链接
if (what == "CreateLink") {
if (Dvbbs_bIsNC)
{
insertLink = prompt("请填写超级链接地址信息:", "http://");
if ((insertLink != null) && (insertLink != "") && (insertLink != "undefined")) {
IframeID.document.execCommand('CreateLink', false, insertLink);
}else{
IframeID.document.execCommand('unlink', false, null);
}
}
else {
IframeID.document.execCommand(what, true, null);
}
}
//去掉添加图片时的src="file://
if(what == "InsertImage"){
if (Dvbbs_bIsNC)
{
imagePath = prompt('请填写图片链接地址信息:', 'http://');
if ((imagePath != null) && (imagePath != "")) {
IframeID.document.execCommand('InsertImage', false, imagePath);
}
IframeID.document.body.innerHTML = (IframeID.document.body.innerHTML).replace("src=\"file://","src=\"");
}else{
Dvbbs_forimage();
}
}
if(what == "InsertAlipay"){
if (Dvbbs_bIsNC)
{
imagePath = prompt('请填写图片链接地址信息:', 'http://');
if ((imagePath != null) && (imagePath != "")) {
IframeID.document.execCommand('InsertImage', false, imagePath);
}
IframeID.document.body.innerHTML = (IframeID.document.body.innerHTML).replace("src=\"file://","src=\"");
}else{
Dvbbs_foralipay();
}
}
Dvbbs_pureText = false;
IframeID.focus();
}
//--------------------
function Dvbbs_forimage()
{
var arr = showModalDialog("images/post/img.htm", window, "dialogWidth:34em; dialogHeight:12em; status:0; help:0");
if (arr)
{
IframeID.document.body.innerHTML+=arr;
}
IframeID.focus();
}
function Dvbbs_foralipay()
{
var arr = showModalDialog("images/post/alipay.htm", window, "dialogWidth:20em; dialogHeight:34em; status:0; help:0");
if (arr)
{
IframeID.document.body.innerHTML+=arr;
}
IframeID.focus();
}
function Dvbbs_fortable()
{
if (!Dvbbs_validateMode()) return;
IframeID.focus();
var arr = showModalDialog("images/post/table.html", window, "dialogWidth:22em; dialogHeight:18em; status:0; help:0;scroll:no;");
if (arr)
{
IframeID.document.body.innerHTML+=arr;
}
IframeID.focus();
}
function Dvbbs_GetRangeReference(editor)
{
editor.focus();
var objReference = null;
var RangeType = editor.document.selection.type;
var selectedRange = editor.document.selection.createRange();
switch(RangeType)
{
case 'Control' :
if (selectedRange.length > 0 )
{
objReference = selectedRange.item(0);
}
break;
case 'None' :
objReference = selectedRange.parentElement();
break;
case 'Text' :
objReference = selectedRange.parentElement();
break;
}
return objReference
}
function Dvbbs_CheckTag(item,tagName)
{
if (item.tagName.search(tagName)!= -1)
{
return item;
}
if (item.tagName == 'BODY')
{
return false;
}
item=item.parentElement;
return Dvbbs_CheckTag(item,tagName);
}
function Dvbbs_code()
{
//Dvbbs_specialtype("<div class=HtmlCode style='cursor: pointer'; title='点击运行该代码!' onclick=\"preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();\">","</div>");
Dvbbs_specialtype("<div class=HtmlCode>","</div>");
}
function Dvbbs_replace()
{
var arr = showModalDialog("images/post/replace.html", "", "dialogWidth:16.5em; dialogHeight:13em; status:0; help:0");
if (arr != null){
var ss;
ss = arr.split("*")
a = ss[0];
b = ss[1];
i = ss[2];
con = IframeID.document.body.innerHTML;
if (i == 1)
{
con = Dvbbs_rCode(con,a,b,true);
}else{
con = Dvbbs_rCode(con,a,b);
}
IframeID.document.body.innerHTML = con;
}
else IframeID.focus();
}
function insertSpecialChar()
{
var arr = showModalDialog("images/post/specialchar.html", "","dialogWidth:25em; dialogHeight:15em; status:0; help:0");
if (arr != null) Dvbbs_InsertSymbol(arr);
IframeID.focus() ;
}
function doZoom( sizeCombo )
{
if (sizeCombo.value != null || sizeCombo.value != "")
var z = IframeID.document.body.style;
z.zoom = sizeCombo.value + "%" ;
}
//--------------------
function Dvbbs_InsertRow()
{
editor = IframeID;
objReference = Dvbbs_GetRangeReference(editor);
objReference = Dvbbs_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
switch(objReference.tagName)
{
case 'TABLE' :
var newTable = objReference.cloneNode(true);
var newRow = newTable.insertRow();
for(x = 0; x<newTable.rows[0].cells.length; x++)
{
var newCell = newRow.insertCell();
}
objReference.outerHTML = newTable.outerHTML;
break;
case 'TBODY' :
var newTable = objReference.cloneNode(true);
var newRow = newTable.insertRow();
for(x = 0; x<newTable.rows[0].cells.length; x++)
{
var newCell = newRow.insertCell();
}
objReference.outerHTML=newTable.outerHTML;
break;
case 'TR' :
var rowIndex = objReference.rowIndex;
var parentTable = objReference.parentElement.parentElement;
var newTable = parentTable.cloneNode(true);
var newRow = newTable.insertRow(rowIndex+1);
for(x = 0; x< newTable.rows[0].cells.length; x++)
{
var newCell = newRow.insertCell();
}
parentTable.outerHTML = newTable.outerHTML;
break;
case 'TD' :
var parentRow = objReference.parentElement;
var rowIndex = parentRow.rowIndex;
var cellIndex = objReference.cellIndex;
var parentTable = objReference.parentElement.parentElement.parentElement;
var newTable = parentTable.cloneNode(true);
var newRow = newTable.insertRow(rowIndex+1);
for(x = 0; x< newTable.rows[0].cells.length; x++)
{
var newCell = newRow.insertCell();
if (x == cellIndex)newCell.id='ura';
}
parentTable.outerHTML = newTable.outerHTML;
var r = editor.document.body.createTextRange();
var item = editor.document.getElementById('ura');
item.id = '';
r.moveToElementText(item);
r.moveStart('character',r.text.length);
r.select();
break;
default :
return;
}
}
function Dvbbs_DeleteRow()
{
editor=IframeID;
objReference=Dvbbs_GetRangeReference(editor);
objReference=Dvbbs_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
switch(objReference.tagName)
{
case 'TR' :var rowIndex = objReference.rowIndex;//Get rowIndex
var parentTable=objReference.parentElement.parentElement;
parentTable.deleteRow(rowIndex);
break;
case 'TD' :var cellIndex=objReference.cellIndex;
var parentRow=objReference.parentElement;//Get Parent Row
var rowIndex = parentRow.rowIndex;//Get rowIndex
var parentTable=objReference.parentElement.parentElement.parentElement;
parentTable.deleteRow(rowIndex);
if (rowIndex>=parentTable.rows.length)
{
rowIndex=parentTable.rows.length-1;
}
if (rowIndex>=0)
{
var r = editor.document.body.createTextRange();
r.moveToElementText(parentTable.rows[rowIndex].cells[cellIndex]);
r.moveStart('character',r.text.length);
r.select();
}
else
{
parentTable.removeNode(true);
}
break;
default :return;
}
}
function Dvbbs_InsertColumn()
{
editor = IframeID;
objReference= Dvbbs_GetRangeReference(editor);
objReference=Dvbbs_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
switch(objReference.tagName)
{
case 'TABLE' :// IF a table is selected, it adds a new column on the right hand side of the table.
var newTable=objReference.cloneNode(true);
for(x=0; x<newTable.rows.length; x++)
{
var newCell = newTable.rows[x].insertCell();
}
newCell.focus();
objReference.outerHTML=newTable.outerHTML;
break;
case 'TBODY' :// IF a table is selected, it adds a new column on the right hand side of the table.
var newTable=objReference.cloneNode(true);
for(x=0; x<newTable.rows.length; x++)
{
var newCell = newTable.rows[x].insertCell();
}
objReference.outerHTML=newTable.outerHTML;
break;
case 'TR' :// IF a table is selected, it adds a new column on the right hand side of the table.
objReference=objReference.parentElement.parentElement;
var newTable=objReference.cloneNode(true);
for(x=0; x<newTable.rows.length; x++)
{
var newCell = newTable.rows[x].insertCell();
}
objReference.outerHTML=newTable.outerHTML;
break;
case 'TD' :// IF the cursor is in a cell, or a cell is selected, it adds a new column to the right of that cell.
var cellIndex = objReference.cellIndex;//Get cellIndex
var rowIndex=objReference.parentElement.rowIndex;
var parentTable=objReference.parentElement.parentElement.parentElement;
var newTable=parentTable.cloneNode(true);
for(x=0; x<newTable.rows.length; x++)
{
var newCell = newTable.rows[x].insertCell(cellIndex+1);
if (x==rowIndex)newCell.id='ura';
}
parentTable.outerHTML=newTable.outerHTML;
var r = editor.document.body.createTextRange();
var item=editor.document.getElementById('ura');
item.id='';
r.moveToElementText(item);
r.moveStart('character',r.text.length);
r.select();
break;
default :
return;
}
}
function Dvbbs_DeleteColumn()
{
editor = IframeID;
objReference=Dvbbs_GetRangeReference(editor);
objReference=Dvbbs_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
switch(objReference.tagName)
{
case 'TD' :var rowIndex=objReference.parentElement.rowIndex;
var cellIndex = objReference.cellIndex;//Get cellIndex
var parentTable=objReference.parentElement.parentElement.parentElement;
var newTable=parentTable.cloneNode(true);
if (newTable.rows[0].cells.length==1)
{
parentTable.removeNode(true);
return;
}
for(x=0; x<newTable.rows.length; x++)
{
if (newTable.rows[x].cells[cellIndex]=='[object]')
{
newTable.rows[x].deleteCell(cellIndex);
}
}
if (cellIndex>=newTable.rows[0].cells.length)
{
cellIndex=newTable.rows[0].cells.length-1;
}
if (cellIndex>=0) newTable.rows[rowIndex].cells[cellIndex].id='ura';
parentTable.outerHTML=newTable.outerHTML;
if (cellIndex>=0){
var r = editor.document.body.createTextRange();
var item=editor.document.getElementById('ura');
item.id='';
r.moveToElementText(item);
r.moveStart('character',r.text.length);
r.select();
}
break;
default :return;
}
}
var OSWEBXHTML=new Object();
OSWEBXHTML.GetXHTML=function(node){
if (window.ActiveXObject){
var prefix = ["MSXML3","MSXML2","MSXML","Microsoft"];
for (var i=0;i<prefix.length;i++) {
try {
this.XML=new ActiveXObject(prefix[i] + ".DOMDocument");
if (XML)
{
return XML;
}
} catch (e) {}
}
}else{
this.XML=document.implementation.createDocument('', '', null);
Node.prototype.__defineGetter__('xml', OSWEBXHTML._Node_Getxml);
};
this.MainNode=this.XML.appendChild(this.XML.createElement( 'XHTML' ));
this._AppendChildNodes(this.MainNode, node);
var sXHTML=this.MainNode.xml;
return sXHTML.substr(7, sXHTML.length - 15);
};
OSWEBXHTML._Node_Getxml=function(){
var oSerializer=new XMLSerializer();
return oSerializer.serializeToString(this);
};
OSWEBXHTML._AppendChildNodes=function(xmlNode, htmlNode){
var oChildren=htmlNode.childNodes;
var i=0;
while (i < oChildren.length){
i +=this._AppendNode(xmlNode, oChildren[i]);
};
};
OSWEBXHTML._AppendNode=function(xmlNode, htmlNode){
var iAddedNodes=1;
switch (htmlNode.nodeType){
case 1 : var sNodeName=fixtag(htmlNode.nodeName.toLowerCase());
var oNode=xmlNode.appendChild(this.XML.createElement( sNodeName ));
var oAttributes=htmlNode.attributes;
for (var n=0 ; n < oAttributes.length ; n++){
var oAttribute=oAttributes[n];
if (oAttribute.specified && oAttribute.nodeName.toLowerCase()+''!='style') this._AppendAttribute(oNode, fixtag(oAttribute.nodeName.toLowerCase()+''), oAttribute.nodeValue+'');
};
var cssText=htmlNode.style.cssText;
if (cssText!='') {
if (navigator.appVersion.indexOf("MSIE")!=-1){
cssText=cssText+';';
}
this._AppendAttribute(oNode, 'style', cssText);
}
if (htmlNode.childNodes.length == 0){
switch (sNodeName){
case "img" :case "input" :case "br" : case "hr" :break;
default : oNode.appendChild(this.XML.createTextNode( '' ));
break;
};
};
switch (sNodeName){
case "script" : case "style" : oNode.appendChild(this.XML.createTextNode( '\['+sNodeName+'\]'+ htmlNode.nodeValue +'\[\/'+ sNodeName+'\]' ));break;
case "abbr" : if (document.all){var oNextNode=htmlNode.nextSibling;
while (true){
iAddedNodes++;
if (oNextNode && oNextNode.nodeName !='/ABBR'){
this._AppendNode(oNode, oNextNode);
oNextNode=oNextNode.nextSibling;
}else
break;
};
break;
};
case "area" : if (document.all && ! oNode.attributes.getNamedItem( 'coords' )){var sCoords=htmlNode.getAttribute('coords', 2);if (sCoords && sCoords !='0,0,0') this._AppendAttribute(oNode, 'coords', sCoords);};
case "img" : if (! oNode.attributes.getNamedItem( 'alt' )) this._AppendAttribute(oNode, 'alt', '');
default :this._AppendChildNodes(oNode, htmlNode);
break;
};
case 3 : if (htmlNode.nodeValue!=null) {
xmlNode.appendChild(this.XML.createTextNode( htmlNode.nodeValue ));
};
break;
default : xmlNode.appendChild(this.XML.createComment( "Element not supported - Type: " + htmlNode.nodeType + " Name: " + htmlNode.nodeName ));break;
};
return iAddedNodes;
};
OSWEBXHTML._AppendAttribute=function(xmlNode, attributeName, attributeValue){
if(attributeName.indexOf('_moz') ==-1 && attributeName.indexOf('on') ==-1 && attributeValue.indexOf('_moz') ==-1 && attributeName!=''){
var oXmlAtt=this.XML.createAttribute(attributeName);
if (typeof( attributeValue )=='boolean' && attributeValue == true ){
oXmlAtt.nodeValue=attributeName;
}else{
oXmlAtt.nodeValue=attributeValue;
};
xmlNode.attributes.setNamedItem(oXmlAtt);
};
};
function fixtag(text)
{
text = text.replace(/&|\/|<|>|\*|#|:|;|=|\?|\)|\(|%|\[|\]|\$| /g, "") ;
return text ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -