假设您有一个相对路径的链接,如下所示:
<a id="link" href="/folder/filename.php">Link Text</a>
并尝试使用Mootools代码获取该href:
$('link').get('href');
这将在每个浏览器中返回/folder/filename.php
,但IE会逐字地为您插入域名,返回http://www.domain.com/folder/filename.php
。
有解决方法吗?如果没有,我怎样才能在所有浏览器中可靠地获取除域之外的所有内容?字符串匹配将是一个痛苦,因为该站点目前正在三个不同的域上进行测试,更不用说与谁知道localhost,端口号和其他任何组合的本地测试的不同人。
答案 0 :(得分:2)
尝试将其变为函数
function GetRelative(selector)
{
var url = $(selector).get("href");
var hostname = window.location.hostname;
var index = url.indexOf(hostname);
if (index == -1)
return url;
else
return url.substring(index);
}
答案 1 :(得分:2)
您最好测试一下,看看URL是否以URI方案加上域开头。这避免了域存在于路径中的奇怪但完全有效的情况。
var href = $('link').get('href'),
prefix = location.protocol + "//" + location.hostname;
if (href.indexOf(prefix) === 0) {
href = href.substring(prefix.length);
}