我有这段代码:
$('.contentBox').click(redirect);
function redirect () {
var pathname = window.location.pathname
location.assign(pathname.replace('index.html', $(this).find('a').attr('href')));
return false;
}
在localhost上可以正常工作,但在服务器上它只刷新主页面。它只有在我实际访问我的菜单上的另一个页面时才有效,然后返回到我的页面,其功能是什么......给出了什么?
答案 0 :(得分:0)
首先,您所做的并不是重定向用户的最佳方式。直接使用href。
现在来看你的代码。 只要路径名不包含index.html,它就会一直刷新,你分配给 location.assign()的是:
pathname.replace('index.html', $(this).find('a').attr('href'))
如果pathname不包含index.html,它将返回路径名本身,这是您的原始路径。因此,您会看到页面刷新。
尝试添加console.log(pathname)
进行验证。
$('.contentBox').click(redirect);
function redirect () {
var pathname = window.location.pathname
console.log(pathname)
if(pathname.indexOf('index.html') > -1){
location.assign(pathname.replace('index.html', $(this).find('a').attr('href')));
return false;
}
}