2016-03-11 7 views
-1

У меня есть этот код:Javascript расположение работает на локальном хосте не сервере

$('.contentBox').click(redirect); 

function redirect() { 
    var pathname = window.location.pathname 
    location.assign(pathname.replace('index.html', $(this).find('a').attr('href'))); 
    return false; 
} 

который работает отлично на локальном хосте, но на сервере он просто обновляет главную страницу. Он работает только в том случае, если я на самом деле сначала посещаю другую страницу в моем меню, а затем возвращаюсь на свою страницу с помощью функции ... что дает?

+0

Пожалуйста, добавьте html –

ответ

0

Прежде всего, то, что вы делаете, - это не лучший способ перенаправить пользователя. Используйте для этого напрямую href.

Теперь переход к вашему коду. Он всегда будет обновляться, пока путь не будет содержать index.html, что вы присваиваете location.assign() это:

pathname.replace('index.html', $(this).find('a').attr('href')) 

, если путь к файлу не будет содержать 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; 
     } 
    } 
Смежные вопросы