📄 edit.js
字号:
editor.document.body.innerHTML = html;
}
function WBTB_FilterScript(content)
{
content = WBTB_rCode(content, 'javascript:', 'javascript :');
//var RegExp = /<script[^>]*>(.|\n)*<\/script>/ig;
//content = content.replace(RegExp, "<!-- Script Filtered -->");
var RegExp = /<script[^>]*>/ig;
content = content.replace(RegExp, "<!-- Script Filtered/n");
RegExp = /<\/script>/ig;
content = content.replace(RegExp, "/n-->");
return content;
}
function WBTB_cleanHtml()
{
var fonts = WBTB_Composition.document.body.all.tags("FONT");
var curr;
for (var i = fonts.length - 1; i >= 0; i--) {
curr = fonts[i];
if (curr.style.backgroundColor == "#ffffff") curr.outerHTML = curr.innerHTML;
}
}
function WBTB_getPureHtml()
{
var str = "";
//var paras = WBTB_Composition.document.body.all.tags("P");
//if (paras.length > 0){
// for (var i=paras.length-1; i >= 0; i--) str= paras[i].innerHTML + "\n" + str;
//} else {
str = WBTB_Composition.document.body.innerHTML;
//}
str=WBTB_correctUrl(str);
return str;
}
function WBTB_correctUrl(cont)
{
var url=location.href.substring(0,location.href.lastIndexOf("/")+1);
cont=WBTB_rCode(cont,location.href+"#","#");
cont=WBTB_rCode(cont,url,"");
return cont;
}
var WBTB_bLoad=false
var WBTB_pureText=true
var WBTB_bTextMode=false
WBTB_public_description=new WBTB_Editor
function WBTB_Editor()
{
this.put_HtmlMode=WBTB_setMode;
this.put_value=WBTB_putText;
this.get_value=WBTB_getText;
}
function WBTB_getText()
{
if (WBTB_bTextMode)
return WBTB_Composition.document.body.innerText;
else
{
WBTB_cleanHtml();
return WBTB_Composition.document.body.innerHTML;
}
}
function WBTB_putText(v)
{
if (WBTB_bTextMode)
WBTB_Composition.document.body.innerText = v;
else
WBTB_Composition.document.body.innerHTML = v;
}
function WBTB_InitDocument(hiddenid, charset)
{
if (charset!=null)
WBTB.Charset=charset;
var WBTB_bodyTag="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>DvNews Editor</title><style type=\"text/css\">\r\n.quote{margin:5px 20px;border:1px solid #CCCCCC;padding:5px; background:#F3F3F3 }\r\nbody{boder:0px}</style>\r\n</head><body>";
var editor=WBTB_Composition;
var h=document.getElementById(hiddenid);
editor.document.designMode="On"
editor.document.open();
editor.document.write(WBTB_bodyTag);
if (h.value!="")
{
editor.document.write(h.value);
}
editor.document.write("\r\n</body>\r\n</html>");
editor.document.close();
editor.document.body.contentEditable = "True";
editor.document.charset=WBTB.Charset;
WBTB_bLoad=true;
WBTB_setStyle();
}
function WBTB_doSelectClick(str, el) {
var Index = el.selectedIndex;
if (Index != 0){
el.selectedIndex = 0;
WBTB_format(str,el.options[Index].value);
}
}
var WBTB_bIsIE5 = (navigator.userAgent.indexOf("IE 5") > -1) || (navigator.userAgent.indexOf("IE 6") > -1);
var WBTB_edit; //selectRang
var WBTB_RangeType;
var WBTB_selection;
//应用html
function WBTB_specialtype(Mark1, Mark2){
var strHTML;
if (WBTB_bIsIE5) WBTB_selectRange();
if (WBTB_RangeType == "Text"){
if (Mark2==null)
{
strHTML = "<" + Mark1 + ">" + WBTB_edit.htmlText + "</" + Mark1 + ">";
}else{
strHTML = Mark1 + WBTB_edit.htmlText + Mark2;
}
WBTB_edit.pasteHTML(strHTML);
WBTB_Composition.focus();
WBTB_edit.select();
}
}
//选择内容替换文本
function WBTB_InsertHtml(str1)
{
WBTB_Composition.focus();
if (WBTB_bIsIE5) WBTB_selectRange();
WBTB_edit.pasteHTML(str1);
}
function WBTB_selectRange(){
WBTB_selection = WBTB_Composition.document.selection;
WBTB_edit = WBTB_Composition.document.selection.createRange();
WBTB_RangeType = WBTB_Composition.document.selection.type;
}
function WBTB_rCode(s,a,b,i){
//s原字串,a要换掉pattern,b换成字串,i是否区分大小写
a = a.replace("?","\\?");
if (i==null)
{
var r = new RegExp(a,"gi");
}else if (i) {
var r = new RegExp(a,"g");
}
else{
var r = new RegExp(a,"gi");
}
return s.replace(r,b);
}
// show/hide Gridlines
function WBTB_showGridlines() {
if (!WBTB_validateMode()) return;
var allForms = WBTB_Composition.document.body.getElementsByTagName("FORM");
var allInputs = WBTB_Composition.document.body.getElementsByTagName("INPUT");
var allTables = WBTB_Composition.document.body.getElementsByTagName("TABLE");
var allLinks = WBTB_Composition.document.body.getElementsByTagName("A");
// 表单
for (a=0; a < allForms.length; a++) {
if (!WBTB.ShowGridlines) {
allForms[a].runtimeStyle.border = "1px dotted #FF0000"
} else {
allForms[a].runtimeStyle.cssText = ""
}
}
// Input Hidden类
for (b=0; b < allInputs.length; b++) {
if (!WBTB.ShowGridlines) {
if (allInputs[b].type.toUpperCase() == "HIDDEN") {
allInputs[b].runtimeStyle.border = "1px dashed #000000"
allInputs[b].runtimeStyle.width = "15px"
allInputs[b].runtimeStyle.height = "15px"
allInputs[b].runtimeStyle.backgroundColor = "#FDADAD"
allInputs[b].runtimeStyle.color = "#FDADAD"
}
} else {
if (allInputs[b].type.toUpperCase() == "HIDDEN")
allInputs[b].runtimeStyle.cssText = ""
}
}
// 表格
for (i=0; i < allTables.length; i++) {
if (!WBTB.ShowGridlines) {
allTables[i].runtimeStyle.border = "1px dotted #BFBFBF"
} else {
allTables[i].runtimeStyle.cssText = ""
}
allRows = allTables[i].rows
for (y=0; y < allRows.length; y++) {
allCellsInRow = allRows[y].cells
for (x=0; x < allCellsInRow.length; x++) {
if (WBTB.ShowGridlines == "0") {
allCellsInRow[x].runtimeStyle.border = "1px dotted #BFBFBF"
} else {
allCellsInRow[x].runtimeStyle.cssText = ""
}
}
}
}
// 链接 A
for (a=0; a < allLinks.length; a++) {
if (WBTB.ShowGridlines == "0") {
if (allLinks[a].href.toUpperCase() == "") {
allLinks[a].runtimeStyle.borderBottom = "1px dashed #000000"
}
} else {
allLinks[a].runtimeStyle.cssText = ""
}
}
if (!WBTB.ShowGridlines) {
WBTB.ShowGridlines = true
} else {
WBTB.ShowGridlines = false
}
}
function WBTB_View()
{
if (WBTB_bTextMode) {
cont=WBTB_Composition.document.body.innerText;
} else {
cont=WBTB_Composition.document.body.innerHTML;
}
cont=WBTB_correctUrl(cont);
bodyTag="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>DvNews Perview</title><style type=\"text/css\">\r\n.quote{margin:5px 20px;border:1px solid #CCCCCC;padding:5px; background:#F3F3F3 }\r\nbody{boder:0px; font-family:Arial; font-size:10.5pt}</style></head><body>";
if (WBTB.filterScript)
cont=WBTB_FilterScript(cont);
cont=WBTB_rCode(cont,"\\[dvnews_ad]","<img src='wbTextBox/images/pic_ad.jpg' vspace='10' hspace='10' align='left' border='1' title='Advertising' alt=''/>");
cont=WBTB_rCode(cont,"\\[dvnews_page]","<br/><br/><hr size='2' width='95%' align='left'/> <font color='red' face='Tahoma,Arail' size='2'><strong>Next Page ...</strong></font><br/><hr size='2' width='95%' align='left'/>");
preWin=window.open('preview','','left=0,top=0,width=550,height=400,resizable=1,scrollbars=1, status=1, toolbar=1, menubar=0');
preWin.document.open();
preWin.document.write(bodyTag);
preWin.document.write(cont);
preWin.document.write("\r\n</body>\r\n</html>");
preWin.document.close();
preWin.document.title="Preview";
preWin.document.charset=WBTB.Charset;
}
// 修改编辑栏高度
function WBTB_Size(num)
{
var obj=document.all.WBTB_Container;
if (parseInt(obj.height)+num>=300) {
obj.height = parseInt(obj.height) + num;
}
if (num>0)
{
obj.width="100%";
}
}
// 拷贝数据到hidden
function WBTB_CopyData(hiddenid)
{
d = WBTB_Composition.document;
if (WBTB_bTextMode)
{
cont=d.body.innerText;
}else{
try{
cont=WBTBXHTML.GetXHTML(d.body)
}catch(e){
cont=d.body.innerHTML;
}
}
cont=WBTB_correctUrl(cont);
if (WBTB.filterScript)
cont=WBTB_FilterScript(cont);
document.getElementById(hiddenid).value = cont;
if (document.getElementById(hiddenid).value == '<p> </p>')
{
document.getElementById(hiddenid).value = '';
}
}
// xhtml object
var WBTBXHTML=new Object();
WBTBXHTML.GetXHTML=function(node){
if (window.ActiveXObject)
this.XML=new ActiveXObject('Msxml2.DOMDocument');
else{
this.XML=document.implementation.createDocument('', '', null);
Node.prototype.__defineGetter__('xml', WBTBXHTML._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);
};
WBTBXHTML._Node_getXML=function(){
var oSerializer=new XMLSerializer();
return oSerializer.serializeToString(this);
};
WBTBXHTML._AppendAttribute=function(xmlNode, attributeName, attributeValue){
var oXmlAtt=this.XML.createAttribute(attributeName);
if (typeof( attributeValue )=='boolean' && attributeValue == true)
oXmlAtt.value=attributeName;
else
oXmlAtt.value=attributeValue;
xmlNode.attributes.setNamedItem(oXmlAtt);
};
WBTBXHTML._AppendChildNodes=function(xmlNode, htmlNode){
var oChildren=htmlNode.childNodes;
var i=0;
while (i < oChildren.length){
i +=this._AppendNode(xmlNode, oChildren[i]);
};
};
WBTBXHTML._AppendNode=function(xmlNode, htmlNode){
var iAddedNodes=1;
switch (htmlNode.nodeType){
case 1 : var sNodeName=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)
this._AppendAttribute(oNode, oAttribute.nodeName.toLowerCase(), oAttribute.nodeValue);
};
switch (sNodeName){
case "script" : case "style" : oNode.appendChild(this.XML.createCDATASection( htmlNode.text ));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;
};
break;
case 3 : 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;
};
WBTB.GetXHTML=function(){var bSource=WBTB_bTextMode;
if (bSource) WBTB_setMode();
var sXHTML=WBTBXHTML.GetXHTML(WBTB_Composition.document.body);
if (bSource) WBTB_setMode();
return sXHTML;
};
function WBTB_help()
{
showModalDialog("wbTextBox/help.html", "", "dialogWidth:13.5em; dialogHeight:11em; status:0; help:0");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -