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

📄 citation.js

📁 Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是供中,大型企业来管理其发布在互连网
💻 JS
字号:
// Citation plugin for HTMLArea
// Implementation by Dejan Lilkic
// Original Author - Dejan Lilkic
//
// (c) Dejan Lilkic & Levi9 Global Sourcing
// Distributed under the same terms as Apache 2.0.
// This notice MUST stay intact for use (see license.txt).

function Citation(editor) {
	this.editor = editor;
	var cfg = editor.config;
	var self = this;

	// register the toolbar buttons provided by this plugin
	cfg.registerButton({
	id       : "citation",
	tooltip  : this._lc("Citation"),
	image    : editor.imgURL("citation.gif", "Citation"),
	textMode : false,
	action   : function(editor) {
			self.buttonPress(editor);
		}
	})
	cfg.addToolbarElement("citation", ["abbreviation","block-quotation","inserthorizontalrule"], 1);	
}

Citation._pluginInfo = {
	name          : "Citation",
	origin        : "version: 1.0, by Levi9, http://www.levi9.com",
	version       : "1.0",
	developer     : "Dejan Lilkic",
	developer_url : "http://www.levi9.com",
	license       : "Apache 2.0"
};

Citation.prototype._lc = function(string) {
    return HTMLArea._lc(string, 'Citation');
};

Citation.prototype.onGenerate = function() {
};

Citation.prototype.buttonPress = function(editor, context, updatecontextclass) {
	var outparam = null;
	var html = editor.getSelectedHTML();
	var sel  = editor._getSelection();
	var range  = editor._createRange(sel);
	var cite = editor._activeElement(sel);
	if(!(cite != null && cite.tagName.toLowerCase() == "cite")) {
	  cite = editor._getFirstAncestor(sel, 'cite'); 
  	}
  	if (cite != null && cite.tagName.toLowerCase() == "cite"){
      outparam = {text : cite.innerHTML};
  	} else {
	  outparam = {text : html};
  	}
    try {
      var doc = editor._doc;
      if (!cite) {
	    
	    //check range length
	    var compare = 0;
	    if (HTMLArea.is_ie) {
	      if(sel.type == "Control") {
	        compare = range.length;
	      } else {
	        compare = range.compareEndPoints("StartToEnd", range);
	      }
	    } else {
	      compare = range.compareBoundaryPoints(range.START_TO_END, range);
	    }	      
	    if (compare == 0) {
	      alert(HTMLArea._lc("You need to select some text before creating a citation"));
	      return;
	    }       	
        
        cite = doc.createElement("cite");         
        cite.innerHTML = html;
          if (HTMLArea.is_ie) {
            range.pasteHTML(cite.outerHTML);
          } else {
            editor.insertNodeAtSelection(cite);
          }
        }else if( cite.tagName.toLowerCase() == "cite" ) {
	      //remove cite tag  
	      var el = cite;    
	      if (HTMLArea.is_ie) {
	        el.outerHTML = HTMLArea.htmlEncode(el.innerText);
	      } else {
	        var txt = document.createTextNode(HTMLArea.getInnerText(el));
	        el.parentNode.insertBefore(txt, el);
	        HTMLArea.removeFromParent(el);
	      }    
	    }
      } catch (e) {       	
      }    
};

⌨️ 快捷键说明

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