我正在尝试扩展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;
};