于飞:
<a href="/">1</a> // link to http://site.com
<a href="/section/page/">2/a> // link to http://site.com/section/page/
<a href="http://site.com/">3</a>
<a href="../gallery/1/">4</a> // link to http://site.com/gallery/1/
JS:
$("a").live('click', function(){
var url = $(this).attr("href");
//do something
});
如何通过jQuery将相对路径(var url
)转换为绝对路径?
如果脚本已经是绝对路径,则不应执行任何操作。
- 谢谢-谢谢
4条答案
按热度按时间nle07wnf1#
我非常肯定,如果您使用
href
* 属性 * 而不是获取 * 属性 *,您将得到一个完整的url,其域为:正如@Phrogz链接的问题所指出的,听起来IE6似乎存在问题。
如果你需要支持它,你可能需要从不同的部分构建
href
,比如this.host
和this.pathname
。IE6支持这些属性。你也可以使用其他属性,但是你需要验证支持。jquery live()函数在1.7版中不建议使用,已从1.9版中删除,因此请使用替代on():
cczfrluj2#
这不是OP所要求的,但是如果有人试图对
<img>
标签这样做(就像我发现这个问题时一样),秘密是 * 不 * 使用jQuery的attr方法。这将直接给出src属性的内容(如果是相对属性,则也是相对的):
$('#your_img').attr('src')
而对DOM对象本身调用.src总是会给出绝对路径(我所需要的):
$('#your_img').get(0).src
ymdaylpp3#
您可以使用jquery移动的
参考:https://api.jquerymobile.com/jQuery.mobile.path.makeUrlAbsolute/
rbl8hiat4#
现代的办法是:
这将把页面转换成一个绝对url对象。