2011-10-24 2 views
0

나는 History.js 현재 저장하는 데 사용에서 일하는 없습니다 (역사는 여기에서 찾을 수 있습니다 : https://github.com/browserstate/History.js/blob/master/README.md를)Javascript- history.pushState() IE

은 이제 인터넷 익스플로러를 제외한 모든 브라우저에서 작동합니다. IE9를 사용하고 IE10에서 작동하는지 모르겠습니다. 어쨌든 내 URL은 다음과 같아야합니다. http://rlb.local/?bereich=3 그러나 IE에서는 다음과 같이 보입니다. http://rlb.local/#http%3A//rlb.local?bereich=3 인터넷 익스플로러가 URL을 이상하게 표시하는 이유가 무엇인지 알 수 없습니다.

URL을 pushState-method에 다음과 같이 전달합니다. History.pushState (null, null, "? bereich = 3");

누군가 내게 힌트를 줄 수 있습니까?

감사와 안부,

ENNE

편집 :

function scrollingFunction(page, speedVar){ 
$.scrollTo({top: 0 , left: getPosition(page)} , speedVar, { axis:'xy', easing: 'easeInOut'}); 
$('.mainNav').removeClass("active"); 
$('#navLink_'+page).addClass("active"); 
History.pushState(null,null,"?bereich="+page); 

}

기능은 다른 페이지를 스크롤하는 데 사용됩니다 다음은이를 사용하는 기능입니다. 변수 "page"는 "1", "2", "3"등과 같은 현재 페이지 번호입니다. 두 번째 매개 변수를 String으로 시도했지만 eiter는 작동하지 않습니다.

+0

Pls, 코드의 관련 부분을 게시하십시오. 그렇지 않으면 아무런 문제가 없는지 확인할 수 없습니다. – bennedich

+0

두 번째 매개 변수가 문자열로되어 있지 않습니다 (라이브러리의 문서가 null 일 수 있다고하지만, 위치가 매우 부정확하고 부정확하며 대부분은 도움이되지 않는다). null 대신에 빈 문자열을 사용하십시오 :'History.pushState (null, '', 'blah') ' – davin

+0

@davin, 필요하지 않습니다. 히스토리 소스를 보면, 그들은이 방법으로 직접 사용합니다. – bennedich

답변

2

IE9는 HTML5 기록 API를 지원하지 않습니다. 따라서 History.js는 URL의 해시 부분을 사용하여 에뮬레이트합니다.

그러나 왜 당신의 URL이 http://rlb.local/#?bereich=3이 아닌지 궁금한가요? 이는 History.js가 웹 사이트에 따라 가능한 가장 짧은 URL을 사용하려고 시도 할 때 자동으로 작동합니다. 어쩌면 당신의 ".local"도메인과 관련이 있을지 모릅니다.

+0

그리고 이것이 답입니다. 나는. 로컬 도메인이었다. 하지만 그것이 작동하는지, 예를 들어 .com을 도메인으로 사용하십시오. 나는 시험해 볼게. 도와 주셔서 감사합니다 :) – enne87

관련 문제