JS learning - simon9k/stackedit GitHub Wiki
6-27
- eventMgr.addListener(eventName, callback),将一个eventName,和callback(listener,可能多个listener)关联起来,实现事件event的触发/分发执行;
- eventMgr本质上是一个事件对应列表的维护;
- extension的触发问题:pageDowneditor触发extension的机制还未清楚,但是通过对emailConverter的研究,传入用以处理的text是一大块,不是全部,但也为过滤到仅包括对应的正则表达式字符才触发对应的extension,也不是一行这种比较小的单位;
6-23
- 如何载入html文件,然后在JS中动态使用(动态指添加管理节点tag,加入动作等)
// text.js plugin help to load html file into js like below,
define([
"jquery",
"underscore",
...
"text!html/bodyEditor.html",
"text!html/bodyViewer.html",
], function($, _, crel, editor, layout, constants, utils, storage, settings, eventMgr, MonetizeJS, bodyEditorHTML, bodyViewerHTML, settingsTemplateTooltipHTML, settingsPdfOptionsTooltipHTML) {
......
//this coded append these html to DOM
if(window.viewerMode === true) {
document.body.innerHTML = bodyViewerHTML;
}
else {
document.body.innerHTML = bodyEditorHTML;
}
......
//这样后续代码可用,
// Add customized buttons
var $btnGroupElt = $('.wmd-button-group1');
$("#wmd-bold-button").append($('<i class="icon-bold">')).appendTo($btnGroupElt);
$("#wmd-italic-button").append($('<i class="icon-italic">')).appendTo($btnGroupElt);
6-9
- eventMgr.js
- extensionList: 从arguments中获取prototype是Extension的,组成一个array;
- eventListenerListMap:通过addEventHook,给每个event,建立一个array,链接上对应要响应该event的函数(属于某天object的);
- eventMgr一大堆函数,是由其它类给加上的,???
5-31
- var extensionSettings = settings.extensionSettings || {};
var cnblogs = cnblogs || {} ;
这是确保cnblogs对象,在存在的时候直接用,不存在的时候直接赋值为{},我们来看看如何利用这个特性来实现Module模式的任意加载顺序: