2017-10-14 5 views
1

내 요구 사항은 사용자가 양식 데이터를 저장하지 않고 페이지를 떠날 때 사용자 정의 된 확인 상자를 표시하는 것입니다.사용자가 페이지를 떠날 때 angularjs에 사용자 정의 된 확인 상자 표시

Google 크롬 관련 사전 정의 된 확인 상자를 표시하는 window.onbeforeunload 이벤트를 사용했습니다. 사용자가 양식을 변경하고 다시로드하려고 할 때 탭 닫기 또는 경로 변경을하면 $ mdDialog.confirm을 표시하고 사용자에게 페이지를 떠나거나 같은 페이지에 머물러보기를 원합니다. 어떻게 만들 수 있습니까?

+0

나는 이것이 가능하다고 생각하지 않습니다. 유일한 알림은 브라우저의 대화 상자를 사용하는 것입니다. 이것은 페이지가 사용자를 무한정 납치 할 수 없기 때문입니다. –

답변

1

보안상의 이유로이 작업을 수행 할 수 없습니다. beforeunload event의 MDN 페이지에서 자세한 내용을 확인할 수 있습니다.

과거에 사용자에게 표시되는 맞춤 문자열을 반환 할 수 있었지만 요즘에는 무시해도됩니다. 가장 좋은 방법은 페이지에 이미있는 표준 대화 상자를 표시하는 것입니다. 일부 브라우저 및 일부 시나리오에서는 명령을 무시해도 무시할 수 있습니다.

다른 방법으로는 양식을 나가기 위해 페이지에 단추를 포함시키는 것입니다. 그래도 사용자가 페이지에서 직접 탐색하는 것을 막지는 못하지만 충분히 보이는 경우 대부분의 경우 사용자는 직접 탐색하는 것보다 클릭 할 확률이 높습니다. 또한 양식에 명시 적 저장 또는 취소가 필요하다는 수동적 알림 기능을합니다 (물론 구체적인 세부 정보에 따라 다름).