Получение текущей страницы URL в JQuery Mobile - PullRequest
2 голосов
/ 04 ноября 2011

Я пытаюсь получить URL текущей страницы на мобильном сайте jquery.(Я использую AJAX-навигацию по умолчанию).

Моя текущая попытка такая (привязка к pagecreate), но не работает ни на одной странице, вставленной в DOM.

$( '[data-role=page]' ).live( 'pagecreate',function(){
  $('#site-toggle').attr('href',"http://" + location.host.replace('m.','') + window.location.pathname); 
});

Кто-нибудь знает, что япропал?

А.

Ответы [ 5 ]

10 голосов
/ 07 мая 2012

Разве это не то, что вы ищете:

var currentUrl = $.mobile.activePage.data('url');
4 голосов
/ 04 ноября 2011

jQuery Mobile имеет метод разбора URL-адреса, который называется $.mobile.path.parseUrl.Его использование будет примерно таким:

var obj = $.mobile.path.parseUrl("http://jblas:password@mycompany.com:8080/mail/inbox?msg=1234");

, который вернет следующий объект:

//  obj.href:         http://jblas:password@mycompany.com:8080/mail/inbox?msg=1234&type=unread#msg-content
//  obj.hrefNoHash:   http://jblas:password@mycompany.com:8080/mail/inbox?msg=1234&type=unread
//  obj.hrefNoSearch: http://jblas:password@mycompany.com:8080/mail/inbox
//  obj.domain:       http://jblas:password@mycompany.com:8080
//  obj.protocol:     http:
//  obj.authority:    jblas:password@mycompany.com:8080
//  obj.username:     jblas
//  obj.password:     password
//  obj.host:         mycompany.com:8080
//  obj.hostname:     mycompany.com
//  obj.port:         8080
//  obj.pathname:     /mail/inbox
//  obj.directory:    /mail/
//  obj.filename:     inbox
//  obj.search:       ?msg=1234&type=unread
//  obj.hash:         #msg-content

Ваш код изменится на что-то вроде этого:

$( '[data-role=page]' ).live( 'pagecreate',function(){
    var $.mobile.path.parseUrl(window.location.href);
    $('#site-toggle').attr('href', obj.protocol + '//' + obj.host + obj.pathname + obj.search + obj.hash); 
});

Документацию можно найти здесь: http://jquerymobile.com/demos/1.0rc2/docs/api/methods.html

1 голос
/ 06 марта 2013

Попробуйте это:

$.mobile.urlHistory.getActive().url

Это должно решить вашу проблему.

0 голосов
/ 07 января 2015

Может быть, вы хотите это

$(location).attr('pathname'); 

Вы должны прочитать эту статью

0 голосов
/ 04 ноября 2011

Вы уже воспользовались плагином jQuery-URL-Parser ?

var url = $.url(); //retrieves current url

Вы также можете получить определенные части URL, например:

var file = $.url.attr("file");
var path = $.url.attr("path");
var host = $.url.attr("host");
...

Если вам нужно получить параметры Querystring:

var parm = $.url.param("id");
...