docs: function createPageDOM() {
    const self = this;
  
    /***
     * 设置page真实的id
     */
    this._pDom.setAttribute("id", this.pageId);
  
    /***
     * 改变page中所有包含id的属性的值都加入id前缀(根据情况进行扩展)
     * label的for属性
     * input的list属性
     * datalist的id属性
     */
    forEach(this._pDom.querySelectorAll("[id]"), function () {
      this.setAttribute("id", self.id + this.getAttribute("id"));
    });
    forEach(this._pDom.querySelectorAll("label[for]"), function () {
      this.setAttribute("for", self.id + this.getAttribute("for"));
    });
    forEach(this._pDom.querySelectorAll("input[list]"), function () {
      this.setAttribute("list", self.id + this.getAttribute("list"));
    });
    forEach(this._pDom.querySelectorAll("datalist[id]"), function () {
      this.setAttribute("id", self.id + this.getAttribute("id"));
    });
  
    /***
     * 获取page的页面过渡类型
     */
    this.transition = this.ctmobile.getPageConfigAttribute(this.pageId, 'transition');
  
    /***
     * 注册Page的默认事件
     * 在addEventListeners之前的代码调用fireEvent方法去触发事件，因为只有注册后才能触发事件
     */
    addEventListeners.call(this);
  
    /***
     * 对page中的通知(BorasdcastReceiver)进行处理
     */
    const action = this.ctmobile.getPageConfigAttribute(this.pageId, 'intentfilterAction');
    const categorys = this.ctmobile.getPageConfigAttribute(this.pageId, 'intentfilterCategorys');
    const priority = this.ctmobile.getPageConfigAttribute(this.pageId, 'intentfilterPriority');
    if (action) {
      this.ctmobile.registerReceiver({
        el: this._pDom,
        action: action,
        priority: priority ? parseInt(priority) : 0,
        categorys: categorys ? categorys.split(" ") : []
      }, this.pageReceiver, this);
    }
  }