我有以下 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');
它接受一个passedUrl,然后将它与一组链接匹配以查看哪个与url最匹配,然后向其添加一个加载类。
这可以正常工作,除非链接中有空格,例如domain.com/People?Name=John Doe
因为浏览器将其视为domain.com/People?Name=John%20Doe
,因此当passedUrl 有转义空格而链接没有时,它不能正确匹配。
有想法该怎么解决这个吗?