⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftb-pro.js

📁 一个CMS系统
💻 JS
字号:
FTB_FreeTextBox.prototype.InsertDiv = function() {
	var div = window.document.createElement("div");
	div.style.width = "200px";
	div.style.height = "200px";
	div.style.border = "dotted 1px gray";
	this.InsertElement(div);
}

FTB_FreeTextBox.prototype.EditStyle = function() {
	// custom implimentation of GetParentElement() and GetSelection() and GetRange()
	el = this.GetParentElement();

	this.EditElementStyle(el);
}

FTB_FreeTextBox.prototype.EditElementStyle = function(el) {

	var styleWin = window.open("","propWin","width=530,height=420,status=0,toolbars=0");
	if (styleWin) {
		styleWin.focus();
	} else {
		alert("Please turn off your PopUp blocking software");
		return;
	}
	//return;
	html = FTB_StyleEditorHtml;
		
	styleWin.document.body.innerHTML = '';
	styleWin.document.open();	
	styleWin.document.write( html );
	styleWin.document.close();	
	
	launchParameters = new Object();
	launchParameters['ftb'] = this;
	launchParameters['element'] = el;	
	styleWin.launchParameters = launchParameters;
	styleWin.load();
}

/* START: Table Functions 
These functions are derived from HTMLAREA who
gave permission for them to be used in FreeTextBox
- Thanks HTMLAREA!!
----------------------------------------------- */
FTB_FreeTextBox.prototype.InsertTable = function(cols,rows,width,widthUnit,align,cellpadding,cellspacing,border) {
	this.designEditor.focus();
	var sel = this.GetSelection();
	var range = this.CreateRange(sel);	
	
	var doc = this.designEditor.document;
	// create the table element
	var table = doc.createElement("table");	

	// assign the given arguments
	table.style.width 	= width + widthUnit;
	table.align	 		= align;
	table.border	 	= border;
	table.cellSpacing 	= cellspacing;
	table.cellPadding 	= cellpadding;
	
	var tbody = doc.createElement("tbody");
	table.appendChild(tbody);
	
	for (var i = 0; i < rows; ++i) {
		var tr = doc.createElement("tr");
		tbody.appendChild(tr);
		for (var j = 0; j < cols; ++j) {
			var td = doc.createElement("td");
			tr.appendChild(td);			
			if (!FTB_Browser.isIE) td.appendChild(doc.createElement("br"));
		}
	}
	
	if (FTB_Browser.isIE) {
		range.pasteHTML(table.outerHTML);
	} else {
		this.InsertNodeAtSelection(table);
	}
	
	return true;
}
FTB_FreeTextBox.prototype.InsertTableWindow = function() {
	this.LaunchTableWindow(false);
}
FTB_FreeTextBox.prototype.EditTable = function() {
	this.LaunchTableWindow(true);
}
FTB_FreeTextBox.prototype.LaunchTableWindow = function(editing) {
		
	var tableWin = window.open("","tableWin","width=400,height=200");
	if (tableWin) {
		tableWin.focus();
	} else {
		alert("Please turn off your PopUp blocking software");
		return;
	}
		
	tableWin.document.body.innerHTML = '';
	tableWin.document.open();
	tableWin.document.write(FTB_TablePopUpHtml);
	tableWin.document.close();
	
	launchParameters = new Object();
	launchParameters['ftb'] = this;
	launchParameters['table'] = (editing) ? this.GetNearest("table") : null;	
	tableWin.launchParameters = launchParameters;
	tableWin.load();
}

FTB_FreeTextBox.prototype.InsertTableColumnBefore = function() {
	this.InsertTableColumn(false);
}
FTB_FreeTextBox.prototype.InsertTableColumnAfter = function() {
	this.InsertTableColumn(true);
}
FTB_FreeTextBox.prototype.InsertTableColumn = function(after) {
   var td = this.GetNearest("td");
   if (!td) {
      return;
   }
   var rows = td.parentNode.parentNode.rows;
   var index = td.cellIndex;
   for (var i = rows.length; --i >= 0;) {
      var tr = rows[i];
      var otd = this.designEditor.document.createElement("td");
      otd.innerHTML = (FTB_Browser.isIE) ? "" : "<br />";

      //if last column and insert column after is select append child
      if (index==tr.cells.length-1 && after) {
         tr.appendChild(otd);
      } else {
         var ref = tr.cells[index + ((after) ? 1 : 0)]; // 0 
         tr.insertBefore(otd, ref);
      } 
   }
}
FTB_FreeTextBox.prototype.InsertTableRowBefore = function() {
	this.InsertTableRow(false);
}
FTB_FreeTextBox.prototype.InsertTableRowAfter = function() {
	this.InsertTableRow(true);
}
FTB_FreeTextBox.prototype.InsertTableRow = function(after) {
	var tr = this.GetNearest("tr");
	if (!tr) return;
	var otr = tr.cloneNode(true);
	this.ClearRow(otr);
	tr.parentNode.insertBefore(otr, ((after) ? tr.nextSibling : tr));
}


FTB_FreeTextBox.prototype.DeleteTableColumn = function() {
	var td = this.GetNearest("td");
	if (!td) {
		return;
	}
	var index = td.cellIndex;
	if (td.parentNode.cells.length == 1) {
		return;
	}
	// set the caret first to a position that doesn't disappear
	this.SelectNextNode(td);
	var rows = td.parentNode.parentNode.rows;
	for (var i = rows.length; --i >= 0;) {
		var tr = rows[i];
		tr.removeChild(tr.cells[index]);
	}
}
FTB_FreeTextBox.prototype.DeleteTableRow = function() {
	var tr = this.GetNearest("tr");
	if (!tr) {
		return;
	}
	var par = tr.parentNode;
	if (par.rows.length == 1) {
		return;
	}
	// set the caret first to a position that doesn't disappear.
	this.SelectNextNode(tr);
	par.removeChild(tr);
}

// helper table
FTB_FreeTextBox.prototype.ClearRow = function(tr) {
	var tds = tr.getElementsByTagName("td");
	for (var i = tds.length; --i >= 0;) {
		var td = tds[i];
		td.rowSpan = 1;
		td.innerHTML = (FTB_Browser.isIE) ? "" : "<br />";
	}
}

FTB_FreeTextBox.prototype.SplitRow = function(td) {
	var n = parseInt("" + td.rowSpan);
	var nc = parseInt("" + td.colSpan);
	td.rowSpan = 1;
	tr = td.parentNode;
	var itr = tr.rowIndex;
	var trs = tr.parentNode.rows;
	var index = td.cellIndex;
	while (--n > 0) {
		tr = trs[++itr];
		var otd = editor._doc.createElement("td");
		otd.colSpan = td.colSpan;
		otd.innerHTML = mozbr;
		tr.insertBefore(otd, tr.cells[index]);
	}
}

FTB_FreeTextBox.prototype.SplitCol = function(td) {
	var nc = parseInt("" + td.colSpan);
	td.colSpan = 1;
	tr = td.parentNode;
	var ref = td.nextSibling;
	while (--nc > 0) {
		var otd = editor._doc.createElement("td");
		otd.rowSpan = td.rowSpan;
		otd.innerHTML = mozbr;
		tr.insertBefore(otd, ref);
	}
}

FTB_FreeTextBox.prototype.SplitCell = function(td) {
	var nc = parseInt("" + td.colSpan);
	splitCol(td);
	var items = td.parentNode.cells;
	var index = td.cellIndex;
	while (nc-- > 0) {
		this.SplitRow(items[index++]);
	}
}


/* FORM Functions
-------------------------------------- */
FTB_FreeTextBox.prototype.IsInForm = function() {
	return (this.GetNearest("form")) ? true : false ;
}

FTB_FreeTextBox.prototype.InsertForm = function() {
	var form = window.document.createElement("form");
	this.InsertElement(form);
}
FTB_FreeTextBox.prototype.InsertCheckBox = function() {
	this.InsertInputElement("","checkbox");
}
FTB_FreeTextBox.prototype.InsertTextBox = function() {
	this.InsertInputElement("","text");
}
FTB_FreeTextBox.prototype.InsertRadioButton = function() {
	this.InsertInputElement("","radio");
}
FTB_FreeTextBox.prototype.InsertButton = function() {
	this.InsertInputElement("","button");
}
FTB_FreeTextBox.prototype.InsertDropDownList = function() {
	var select = window.document.createElement("select");
	this.InsertElement(select);
}
FTB_FreeTextBox.prototype.InsertTextArea = function() {
	var textarea = window.document.createElement("textarea");
	this.InsertElement(textarea);
}

FTB_FreeTextBox.prototype.InsertInputElement = function(id,type) {
	var input = window.document.createElement("input");
	input.id = id;

	input.type = type;
	this.InsertElement(input);
}


/* Color picker Functions
-------------------------------------- */
FTB_FreeTextBox.prototype.FontForeColorPicker = function() {
	this.LaunchColorPickerWindow('forecolor');
}
FTB_FreeTextBox.prototype.FontBackColorPicker = function() {
	this.LaunchColorPickerWindow('backcolor');
}
FTB_FreeTextBox.prototype.LaunchColorPickerWindow = function(commandName, startValue) {

	var pickerWin = window.open("","colorPickerWin","width=290,height=180");
	if (pickerWin) {
		pickerWin.focus();
	} else {
		alert("Please turn off your PopUp blocking software");
		return;
	}
	
	pickerWin.document.body.innerHTML = '';
	pickerWin.document.open();
	pickerWin.document.write(FTB_ColorPickerHtml);
	pickerWin.document.close();

	launchParameters = new Object();
	launchParameters['ftb'] = this;
	launchParameters['commandName'] = commandName;
	pickerWin.launchParameters = launchParameters;
	pickerWin.load();
}

FTB_FreeTextBox.prototype.InsertImage = function() {
	var imageWin = window.open("","imageWin","width=500,height=310");
	if (imageWin) {
		imageWin.focus();
	} else {
		alert("Please turn off your PopUp blocking software");
		return;
	}


	//imageWin.document.body.innerHTML = '';
	imageWin.document.open();
	imageWin.document.write(FTB_ImagePopUpHtml);
	imageWin.document.close();
	
	launchParameters = new Object();
	launchParameters['ftb'] = this;
	imageWin.launchParameters = launchParameters;
	imageWin.load();
}


/* Misc Pro features
--------------------------------------- */

FTB_FreeTextBox.prototype.WordClean = function() {

	var text = this.designEditor.document.body.innerHTML;
	
	text=text.replace(/<FONT[^>]*>/gi,"");
	text=text.replace(/<\/FONT>/gi,"");
	text=text.replace(/<U>/gi,"");
	text=text.replace(/<\/U>/gi,"");
	text=text.replace(/<H[^>]*>/gi,"");
	text=text.replace(/<\/H[^>]*>/gi,"");
	
	// Change these tags.
	text=text.replace(/<B[^>]*>/gi,"&bold");
	text=text.replace(/<\/B[^>]*>/gi,"&cbold");
	text=text.replace(/<STRONG[^>]*>/gi,"&bold");
	text=text.replace(/<\/STRONG[^>]*>/gi,"&cbold");

	text=text.replace(/<I[^>]*>/gi,"&ital");
	text=text.replace(/<\/I[^>]*>/gi,"&cital");
	text=text.replace(/<EM[^>]*>/gi,"&ital");
	text=text.replace(/<\/EM[^>]*>/gi,"&cital");
	
	text=text.replace(/<UL[^>]*>/gi,"&ultag");
	text=text.replace(/<LI[^>]*>/gi,"&litag");
	text=text.replace(/<OL[^>]*>/gi,"&oltag");
	text=text.replace(/<\/OL>/gi,"&olctag");
	text=text.replace(/<\/LI>/gi,"&lictag");
	text=text.replace(/<\/UL>/gi,"&ulctag");

	text=text.replace(/<P[^>]*>/gi,"&parag");
	text=text.replace(/<\/P>/gi,"");
	
	/*
	text=text.replace(/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -