我有以下JavaScript代码:
var matchArray = [];
var passedUrl = '/' + url;
var tabLink;
$('.uiAjaxTabs li a').each(function () {
if (passedUrl.indexOf($(this).attr('href')) == 0) {
boverlap_penalty = passedUrl.replace($(this).attr('href'), '').length;
matchArray.push({ 'score': boverlap_penalty, 'dom_obj': this });
}
});
if (matchArray.length) {
tabLink = matchArray.sort(function (a, b) {
return (a.score < b.score) ? -1 : 1
}).shift().dom_obj;
}
$(tabLink).parents('li').addClass('loading');
使用passUrl然后将其与一组链接进行匹配,以查看哪个链接最匹配,然后为其添加一类加载。
除非链接中有空格,否则这种方法可以正常工作,例如domain.com/People?Name=John Doe
,因为浏览器将其视为domain.com/People?Name=John%20Doe
,因此当passUrl具有转义空格且链接没有时,浏览器无法正确匹配。
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试使用JavaScript的unescape
函数,它似乎可以解码URL编码的字符串。