2012-03-26 2 views
1

Chrome 용 푸시 스테이트를 어떻게 비활성화합니까 (테스트 용)?Chrome 용 푸시 스테이트를 사용 중지하는 방법은 무엇인가요? (Davis.js 용)

보너스 당신이 쉽게 전환 할 수 있도록하는 플러그인 :

내 pushstate 논리에 대한 davis.js을 사용하고 알고있는 경우.

+0

"사용 안 함"과 어떤 종류의 테스트를 의미합니까? 이벤트 메커니즘은 브라우저의 고유 한 부분이므로 js는 단순히 "해제하지 않을 수 없다"는 의미가 아니라 단순히 비활성화 할 수 없습니다. 수행중인 테스트에 대한 추가 정보가 있으면 문제를 격리 할 수 ​​있습니다. – Zirak

+0

나는 pushstate를 지원하지 않는 브라우저가 내 사이트를 쳤을 때 어떤 일이 벌어 지는지 에뮬레이트하려고한다. 라우팅에 Davis.js를 사용하고 있습니다. Davis를 라우팅에서 제외 할 수는 있지만 공정한 테스트는 아닙니다. –

답변

1

Davis.js 경로가 계속 작동하는 이유는 링크를 클릭하면 경로를 직접 실행하기 때문입니다. onPushState 이벤트가 없으므로 뒤로 및 앞으로 버튼을 사용하면 더 이상 경로가 트리거되지 않습니다 .

pushState를 지원하지 않는 브라우저에서 일어나는 일을 에뮬레이션하려면 Davis.js가 지원 여부를 확인하는 방법을 속일 수 있습니다. 이것은 Davis.supported function에서 이루어집니다.

pushState를 지원하지 않는 브라우저에서 일반적으로 발생하는 false를 반환하도록이 함수를 재정의 할 수 있습니다. 이것을 Davis.js 확장으로 감쌀 수 있다면, block iOS extension을 참고하십시오.

+0

그게 내가 일종의 일을 끝내 었는지. 나는 정말 데이비스를 파다. –

+0

유용한 정보! 북마크 릿이나 크롬 확장 기능을 사용하면 이러한 동작을 감쌀 수 있습니다. 그렇게한다면 Davis.js 사이트에 소개 할 예정입니다. –

3
history.pushState = function(){}; 
//An empty function so if it is used, it doesn't throw any errors 

콘솔에 넣으십시오. 타다! 콘텐츠 스크립트를 사용하여 페이지에서이를 실행하는 Chrome 확장 프로그램을 쉽게 만들 수 있습니다.

+1

그것이 나를 위해 작동하지 않기 때문에 뭔가를 놓치고 있어야합니다. 내 Davis.js 경로가 아직 실행 중입니다. –

관련 문제