“ 기고 페이지에서이 페이지를 나가시겠습니까 ” 팝업

실제 기부를 진행하지 않고 기부 페이지 (예 : 기부)를 떠날 때 “이 페이지에서 나가시겠습니까?”팝업을 어디에서 억제 할 수 있습니까? 양식을 작성하는 도중에 실수로 페이지를 떠나는 것을 막기 위해있을 수 있다는 것을 알고 있지만 실제로는 실수로 인한 경우보다 도움이되는 것보다 더 성가신 것 같습니다. 또한 페이지에 Facebook 로그인이 있습니다. 을 사용하면 페이지를 강제로 다시로드하여 “이 페이지에서 나가기”팝업을 호출합니다. 이것은 로그인하기 위해 “이 페이지에서 나가기”버튼을 눌러야한다는 것을 알지 못하는 사용자에게 혼란을줍니다. “실제로 페이지에 남아 있으므로 혼동이 발생합니다.)

이것은 Joomla (CiviCRM 4.6.9 포함 3.4.4)에 있습니다.

나는 거기에 있다고 가정합니다. “s an onbeforeunload 함수-하나는 /administrator/components/com_civicrm/civicrm/js/Common.js에 나타납니다.

사용자가 그렇지 않은 경우에도 경고가 나타납니다. 양식에 항목을 작성했습니다. “경고가 표시 될 때만 표시되어야하지 않습니까?

포인터 감사합니다.

댓글

  • 알겠습니다. ' onbeforeunload를 주석 처리합니다. 위에서 언급 한 파일의 ' 함수는 팝업을 확실히 제거하지만 실제로 질문해야했던 방식은 양식에 무언가를 입력 / 선택할 때만 함수를 호출 할 수있는 방법입니다. 페이지에서. 이 경우에는 ' 유용하기 때문입니다.
  • 최근 4.6에서이 동작을 한두 번 관찰했습니다. ' d 내가 생각하는 사이트는 내가 그것을 다시 보면 그것을 조사하는 데 시간이 걸릴 것입니다. 약간 귀찮은 일이지만 제출하거나 다시로드 할 때 발생했을 것이기 때문에 방금 ESC를 누르거나 최대한 빨리 사라지게 만들었습니다. : D

답변

CiviCRM은 jQuery를 사용하여 양식 입력을 감시하고 저장되지 않은 변경 사항이있는 경우에만 경고를 제공합니다. 이에 대한 코드는 Common.js 에서 찾을 수 있습니다. 데모 서버에서 샘플 제공 페이지를 시도하면 제대로 작동하는 것 같습니다. 기여 페이지 를 열고 아무것도 입력하지 않고 탭을 닫으면 경고가 표시되지 않습니다.하지만 금액을 입력 한 후 나 가려고하면 onbeforeunload 메시지가 팝업됩니다. .

만약 원한다면 CRM.utils.initialValueChanged 함수를 디버깅하여 civi에서 양식이 변경되었다고 생각하는지 소프트웨어 개선에 도움이되지는 않았습니다.

또는 FB 로그인 버튼에 약간의 자바 스크립트를 추가 할 수도 있습니다. 기존 마크 업이 <button type="submit"> 그런 다음 <button type="submit" onclick="window.onbeforeunload = null;">

처럼 보이도록 추가 할 수 있습니다.하지만 진지하게 디버깅 피드백이 도움이 될 것입니다.

댓글

  • 정보를 제공해 주셔서 감사합니다, Coleman. 저는 ' 개발자는 아니지만 Civi가 양식에서 무언가가 변경되었다고 생각하는 이유를 설명하고 다른 사용자 (및 Civi 팀을 위해)를 위해 여기에 게시합니다.
  • 그냥 추측 해보세요. 브라우저 자동 채우기가 양식에 무언가를 삽입 할 수 있나요?
  • li>

답변

사용자 등록을위한 기본 제공 프로필 ( “이름 및 주소”가 of-the-box title)은 기여 페이지에서 사용됩니다. 다른 프로필로 바꾸면 팝업이 나타나지 않습니다. Joomla CiviCRM 데모 사이트에 복제했습니다.

댓글

  • 이를 일으키는 프로필의 특정 필드로 범위를 좁히는 것이 좋습니다. .
  • 설명을 해주셔서 감사합니다, Coleman. 필드 중 하나가 ' 없습니다. 새 프로필에서 기본 제공이 아닌 ' 동일한 필드를 모두 사용했습니다. 하나는 사용자 등록 용이며 완벽하게 작동합니다.
  • ' … 이상합니다.
  • I ' 다른 프로필을 사용하여이 오류가 발생합니다.

답변

다른 사람에게 사용 : 특정 기부 양식에서 기본적으로 반복 기부 확인란 ( “매월이 금액을 기부하겠습니다”)을 참 (선택)으로 설정하고 싶었습니다. 다음 사용자 지정 자바 스크립트를 사용하여 수행했습니다.

JavaScript에서 값을 “checked”로 설정 한 후 CiviCRM이 다른 페이지로 이동할 때 저장되지 않은 변경 사항에 대해 불평하지 않도록 .data("crm-initial-value", true) 코드가 필요했습니다.

<script> CRM.$(function($) { // make recurring contribution checkbox true by default var r = $("#is_recur"); if (!r.length) { return; } r.attr("checked", "checked"); r.prop("defaultChecked", true); r.prop("checked", true); // necessary to tell Civi the default value has changed r.data("crm-initial-value", true); </script> 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다