“を非表示にするにはどうすればよいですかこのページ”ポップアップを投稿ページ

実際に寄付を進めずに寄付ページ(寄付など)を離れるときに、「このページを離れてもよろしいですか」というポップアップをどこで抑制できますか。フォームへの入力の途中で誤ってページを離れないようにするためにあるかもしれませんが、実際には、偶発的なケースの一部で役立つよりも迷惑だと思います。また、ページにFacebookログインがあります。を使用すると、ページが強制的に再読み込みされ、「このページを離れる」ポップアップが呼び出されます。これは、ログインするために「このページを離れる」ボタンを押す必要があることを知らないユーザーを混乱させます(言うまでもなく、「実際にはページにとどまるため、混乱が生じます。」

これはJoomla(3.4.4 w / CiviCRM 4.6.9)にあります

私はそこにいると想定しています”s onbeforeunload関数-1つは/administrator/components/com_civicrm/civicrm/js/Common.jsに表示されます

ユーザーがそうでない場合でも警告が表示されますフォームに入力しました。「警告は表示されたときにのみポップアップするべきではありませんか?

ポインタをありがとうございます。

コメント

  • OK、' onbeforeunloadをコメントアウトします上記のファイルの'関数はポップアップを確実に削除しますが、実際に質問する必要があるのは、フォームに何かが入力/選択された場合にのみ関数を呼び出す方法です。ページ上。その場合、'が便利だからです。
  • 'は、最近4.6でこの動作を1〜2回観察しました。私が思うサイトは、私がそれをもう一度見るならば、それを調べるのに少し時間がかかるでしょう。ちょっと面倒ですが、送信またはリロード時に発生していたので、ESCを押すか、できるだけ早く消えてしまいました:D

回答

CiviCRMはjQueryを使用してフォーム入力を監視し、保存されていない変更がある場合にのみ警告を出します。そのコードは Common.js にあります。デモサーバーでサンプルの投稿ページを試してみると、正しく機能しているように見えます。 投稿ページを開き、何も入力せずにタブを閉じると、警告は表示されません。ただし、金額を入力してそのままにしておくと、onbeforeunloadメッセージがポップアップ表示されます。 。

必要に応じて、CRM.utils.initialValueChanged関数をデバッグして、 civiがフォームが変更されたと見なす理由を確認します。ソフトウェアの改善に役立つフィードバックはありません。

または、FBログインボタンに小さなJavaScriptを追加することもできます。既存のマークアップが<button type="submit">次に、<button type="submit" onclick="window.onbeforeunload = null;">

のように追加できますが、真剣に、デバッグフィードバックが役立ちます。

コメント

  • 情報をありがとう、コールマン。私は'あまり開発者ではありませんが、見ていきます。 Civiがフォーム上で何かが変更されたと考え、他の人(およびCiviチーム)のためにここに投稿する理由を説明します。
  • 推測-ブラウザの自動入力によってフォームに何かが挿入される可能性はありますか?

回答

これは、ユーザー登録用の組み込みプロファイル(「名前と住所」が外部の場合)に発生します。 of-the-box title)は投稿ページで使用されます。別のプロファイルと交換すると、ポップアップは表示されません。これをJoomlaCiviCRMデモサイトで複製しました。

コメント

  • 原因となっているプロファイル内の特定のフィールドに絞り込むとよいでしょう。 。
  • 説明を促してくれてありがとう、コールマン。 'はどのフィールドでもありません-新しいプロファイルで同じフィールドをすべて使用しましたが'は組み込みではありません1つはユーザー登録用で、完全に機能します。
  • その' s …奇妙です。
  • I '別のプロファイルを使用してこのエラーが発生する

回答

その場合他の人への使用:特定の寄付フォームで、定期的な寄付チェックボックス(「毎月この金額を寄付したい」)をデフォルトでtrue(チェック)にしたい。次のカスタムJavaScriptを使用してそれを行った。

javascriptで値を「チェック済み」に設定した後、別のページに移動するときに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> 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です