docs: function( absUrl, triggerData, settings, deferred ) {
              var fileUrl = this._createFileUrl( absUrl );
  
              return $.proxy(function( html, textStatus, xhr ) {
                  //pre-parse html to check for a data-url,
                  //use it as the new fileUrl, base path, etc
                  var content,
  
                      // TODO handle dialogs again
                      pageElemRegex = new RegExp( "(<[^>]+\\bdata-" + this._getNs() + "role=[\"']?page[\"']?[^>]*>)" ),
  
                      dataUrlRegex = new RegExp( "\\bdata-" + this._getNs() + "url=[\"']?([^\"'>]*)[\"']?" );
  
                  // data-url must be provided for the base tag so resource requests
                  // can be directed to the correct url. loading into a temprorary
                  // element makes these requests immediately
                  if ( pageElemRegex.test( html ) &&
                      RegExp.$1 &&
                      dataUrlRegex.test( RegExp.$1 ) &&
                      RegExp.$1 ) {
                      fileUrl = $.mobile.path.getFilePath( $("<div>" + RegExp.$1 + "</div>").text() );
  
                      // We specify that, if a data-url attribute is given on the page div, its value
                      // must be given non-URL-encoded. However, in this part of the code, fileUrl is
                      // assumed to be URL-encoded, so we URL-encode the retrieved value here
                      fileUrl = this.window[ 0 ].encodeURIComponent( fileUrl );
                  }
  
                  //dont update the base tag if we are prefetching
                  if ( settings.prefetch === undefined ) {
                      this._getBase().set( fileUrl );
                  }
  
                  content = this._parse( html, fileUrl );
  
                  this._setLoadedTitle( content, html );
  
                  // Add the content reference and xhr to our triggerData.
                  triggerData.xhr = xhr;
                  triggerData.textStatus = textStatus;
  
                  // DEPRECATED
                  triggerData.page = content;
  
                  triggerData.content = content;
  
                  triggerData.toPage = content;
  
                  // If the default behavior is prevented, stop here!
                  // Note that it is the responsibility of the listener/handler
                  // that called preventDefault(), to resolve/reject the
                  // deferred object within the triggerData.
                  if ( this._triggerWithDeprecated( "load", triggerData ).event.isDefaultPrevented() ) {
                      return;
                  }
  
                  // rewrite src and href attrs to use a base url if the base tag won't work
                  if ( this._isRewritableBaseTag() && content ) {
                      this._getBase().rewrite( fileUrl, content );
                  }
  
                  this._include( content, settings );
  
                  // Remove loading message.
                  if ( settings.showLoadMsg ) {
                      this._hideLoading();
                  }
  
                  deferred.resolve( absUrl, settings, content );
              }, this);
          }