2017-03-18 4 views
1

.load() 함수를 사용하여 페이지를 리디렉션하지 않고 내용을로드하는 동안 history.pushState를 구현하려고하는데 .load() 기능이 제대로 작동하고 history.pushState가 첫 번째 구현에서 작동합니다. . 그때는 URL로 추가 다른 링크를 ... 클릭하면 그러나 여기 와 관련된 문제 history.pushState와 관련된 문제

는 I의 의미는 다음과 같습니다

홈페이지 URL : https://materialwebdesign.ltd/inc/material-design
다른 링크를 클릭하고 URL이된다 : https://materialwebdesign.ltd
클릭 링크 및 URL이된다 : https://materialwebdesign.ltd/inc/inc/bootstrap

왜 이런 일이 발생합니까? Heres는 내 코드 : 당신이 너무 도움이 할 수 있다면

$(document).ready(function() { 

    $('#main_content').load('inc/main-content.html', function() { 
     $(this).animate({ height: '100%', width: '100%' }, 2000, 'linear'); 
    }); 

    $('.dynamic').click(function(e) { 

     e.preventDefault(); 

     var page = $(this).attr('href'); 

     var title = page.title; 

     $('#main_content').html('<div class="mdl-spinner mdl-js-spinner is-upgraded is-active"></div>'); 

     if (typeof (history.pushState) != 'undefined') { 

      var obj = {Title: title, Url: page} 

      $('#main_content').load(page + '.html', function() { 
       $(this).animate({ height: '100%', width: '100%' }, 2000, 'linear') 
      }); 

      if(page != window.location){ 
       history.pushState(obj, obj.Title, obj.Url); 
      } 

      return false; // don't follow the link 

     }; 

    }); 
}); 

뿐만 아니라 위에서 언급 한 문제로는, 애니메이션 단지, 애니메이션을하지 않는 내가 매우

+0

어디에서'pushState '를 사용하는지 알지 못합니다. 사방에 'replaceState' 만 있습니다. – Psi

+0

사과, 다양한 방법을 시도하는 동안 나는 봇 pushState와 replaceState를 사용했다. (둘 다 똑같은 문제가있다!) 나는 이것을 바로 잡기 위해 편집 할 것이다. –

답변

1

obj.Url 감사하겠습니다은, 상대 URL입니다 그래서 그것은 페이지의 현재 URL을 기준으로 해석됩니다. 하위 디렉토리가 포함되어 있으므로이 작업을 수행 할 때마다 현재 페이지의 URL에 다른 레벨의 하위 디렉토리를 추가하십시오.

속성에 상대 URL을 반환하는 $(this).attr('href') 대신 this.href을 사용하십시오. href 속성을 반환합니다.이 속성은 정규화 된 후 절대 URL입니다.

+0

안녕하세요,'var page = $ (this) .attr ('href');를'var page = this.href;'와 바꾸십시오 (기본적으로 같은 것은 아닌가요?)? 나는 단지 그것을했고 문제는 여전히 지속된다! 당신은 내 사이트에 가서 문제를 체크 아웃 할 수 있습니다 .. –

+0

...하지만 나는 현재 사이트를 개발 중입니다. –