2009-08-06 2 views
1

안녕하세요, 레일스 앱에서 '뒤로'버튼을 클릭하면 history.back()이 호출됩니다. 그러나 아무 일도 일어나지 않습니다. 브라우저에 기록이 있습니다. 브라우저의 뒤로 버튼을 누르면 올바른 페이지로 돌아갑니다.Javascript history.back()이 레일스 앱에서 작동하지 않습니다.

그러나 history.go (-2)를 사용하면 페이지가 올바르게 되돌아갑니다. 그렇다면 왜 자바 스크립트가 두 페이지가 아닌 두 페이지로 돌아가도록 지시해야합니까?

아이디어를 디버깅하는 방법은 무엇입니까?

나는 FF와 사파리에서 이것을 시도했다.

감사합니다.

--Additional 정보는 :

가 좋아 내가 좀 더 주위를 연주하고이 작품 :

<a href='javascript:' onclick='history.back();'> 

을 원래의 코드이었다 :

<a href='#' onclick='history.back();'> 

의 차이점은 무엇입니까? (이전에 작동 했었던 점에 유의하십시오. 후자의 링크가 작동하지 않게 변경되었습니다.)

답변

10

return false를 추가해 보았습니까? 그래서 :

<a href='#' onclick='history.go(-1);return false;'> 
+0

예 'return false'를 추가했습니다. 고마워. 이것이 권장 접근법입니까? – Hisham

+1

나는 항상 "뒤로"버튼을 피하려고합니다. 왜냐하면 자연스럽게 예측할 수 없기 때문입니다. 그러나 질문에 대한 자세한 내용이 false라면, javascipt를 실행하고 실제 액션을 수행하지 않으려 고 할 때 항상 사용해야합니다. 사례 "클릭") 귀하의 코드는 "페이지로 돌아가서 귀하의 문제였던 currentpage.html #"로 이동했기 때문에 –

8

당신이 link_to_function를 사용하는 경우 자동 끝에 return false을 추가합니다.

<%= link_to_function "Go back", "history.back()" %> 
관련 문제