在jquery mobile中获取当前页面URL

时间:2011-11-04 16:19:28

标签: jquery url jquery-mobile

我正在尝试在jquery移动网站中获取当前页面网址。 (我使用默认的ajax导航)。

我目前的尝试是这样的(绑定到pagecreate),但是在注入DOM的任何页面上都不起作用。

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

任何人都知道我错过了什么?

一个。

5 个答案:

答案 0 :(得分:10)

这不是你要找的:

var currentUrl = $.mobile.activePage.data('url');

答案 1 :(得分:4)

jQuery Mobile有一个名为$.mobile.path.parseUrl的URL解析方法。它的用法是这样的:

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

答案 2 :(得分:1)

试试这个:

$.mobile.urlHistory.getActive().url

它应该可以解决你的问题。

答案 3 :(得分:0)

您是否查看了jQuery-URL-Parser插件?

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

您还可以像这样获取网址的特定部分:

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

如果您需要获取Querystring参数:

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

答案 4 :(得分:0)

也许你想要这个

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

您应该阅读this article