Google Closure:使用TagOnEnterHandler插件创建唯一ID

时间:2014-01-28 12:55:23

标签: wysiwyg contenteditable google-closure google-closure-library

我正在尝试扩展TagOnEnterHandler插件,以便为按下回车时插入的每个段落生成唯一ID。下面是我对这个库做的一些修改。但它的作用是它只为第一段标记生成一个唯一的id,并在该简单复制相同的id后按Enter键。在我看来,输入处理程序将当前段落拆分为两个,并将焦点转移到新创建的段落标记。任何人都可以为我提供解决方案

 goog.editor.plugins.TagOnEnterHandler.prototype.getNonCollapsingBlankHtml =
 function() {
   if (this.tag == goog.dom.TagName.P) {
     return '<p id="'+this.getId()+'"><br /></p>';
   } else if (this.tag == goog.dom.TagName.DIV) {
     return '<div id="'+this.getId()+'"><br></div>';
   }
   return '<br>';
 };


/**
 * Generated Unique Identifiers.
 * @type {Object.<number>}
 */
 goog.editor.plugins.TagOnEnterHandler.prototype.blockId = {};


/**
 * Generates a unique identifier
 * @return {string} The unique identifier
 */
 goog.editor.plugins.TagOnEnterHandler.prototype.getId = function(){
 var uid;
 do{
    uid = Math.round(65535 * Math.random()).toString(16);
    uid = Array(4 - uid.length + 1).join("0") + uid;
 }while(this.blockId[uid]);
 this.blockId[uid] = 1;
 return uid;
 };

0 个答案:

没有答案