2009-07-04 2 views
5

웹 앱에서 IFRAME을 사용하여 사용자가 상위 페이지 항목을 선택할 수 있도록합니다.firefox iframe 기록

문제는 FIREFOX (3.5)가 IFRAME이 열릴 때마다 기록에 동일한 (부모) 페이지의 복사본을 추가한다는 것입니다.

웹 응용 프로그램은 history.back()을 사용하여 상위 페이지에서 해당 페이지를 호출 한 페이지로 이동합니다.

발신자에서 수신자로 "뒤로"페이지를 매개 변수로 전달하여 문제를 해결할 수 있습니다.

여전히 BACK 버튼이 깨져 남아 있습니다 (사용자가 뒤로 버튼을 누르면 같은 페이지에 남아 있음).

생성 된 다른 문제는 일부 페이지가 기록되지 않도록하려는 것입니다. 사용자가 으로 INSERT 페이지로 이동하지 못하도록하고 있습니다.

이 쉽게 같은 INSERT 페이지의 많은 항목과 파이어 폭스 완료 INSERT 페이지에 location.replace으로 수행하지만, 불가능하다. 문제가 귀하의 항목이 중복되는 경우

답변

1

,

history.back(-2) 

또는 -3, 또는 이동 -4 대신 history.back() or history.back(-1)의 필요합니다.

그렇다면 iframe과 부모 문서 간의 통신이 버그 자석 인 경향이 있으므로 iframe 기반 솔루션을 버리고 전혀 포함하지 않는 무언가를 만들려고합니다.

3

문제가 오늘과 같은지 확실하지 않은 경우 ...

페이지에 iframe이 있고 iframe src가 변경되면 브라우저 (내 경우에는 FF 4.0)가 내비게이션으로 이동하고 뒤로 버튼을 누르면이 iframe 내부로 한 걸음 뒤로 이동합니다.

그러나이 iframe을 페이지를로드 한 후 동적으로 생성하면 다르게 동작합니다. iframe을 연속적으로 변경하면 src는 탐색으로 간주되지 않으며 브라우저는 페이지를 기록에 추가하지 않으므로 뒤로 버튼의 예상되는 동작이 발생합니다.

+1

이 정보가 2011 년에 정확한지는 잘 모르겠지만, 올바르게 읽는다면 오늘은 정확하지 않습니다. 히스토리 이벤트가 수정되는 것과 동시에 iframe을 교체하거나 생성해야합니다. (같은 함수 체인에서) 따라서, 앞/뒤로 이벤트 체인 전파 메커니즘은 Firefox에서 새로 생성 된 iframe을 추가하지 않으며 모두 훌륭합니다. – Agamemnus