我正在尝试在jquery移动网站中获取当前页面网址。 (我使用默认的ajax导航)。
我目前的尝试是这样的(绑定到pagecreate),但是在注入DOM的任何页面上都不起作用。
$( '[data-role=page]' ).live( 'pagecreate',function(){
$('#site-toggle').attr('href',"http://" + location.host.replace('m.','') + window.location.pathname);
});
任何人都知道我错过了什么?
一个。
答案 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)