SuityeCRM - код jQuery не работает на Chrome - PullRequest
0 голосов
/ 11 июня 2019
 $("#subpanel_title_documents").click(function(){
    alert("clicked");

        alert("loaded");
        $("#documents_cases_create_button").click(function(){
            alert("clicked");
             setTimeout(function(){console.log("undefined");},1000);
             alert("test");
             setTimeout(function(){
                if($("#account_id").attr("data-id-value") != ""){
                    alert("account");
                    setTimeout(function(){
                        var idAccount = $("#account_id").attr("data-id-value");
                        var nAccount = $("#account_id").text();

                        alert(idAccount);
                        alert(nAccount);

                         $("#account_id_c").val(idAccount);
                         $("#accounts_c").val(nAccount);
                    },500);


                }else{
                    $("#subpanel_title_contacts").click();
                        alert("subpanel open");
                        setTimeout(function(){
                                    var idcontact = $("*[data-module='Contacts']").data("record-id");
                                    var nomecontact = $("*[data-module='Contacts']").data("module-name");

                                    alert(idcontact);
                                    alert(nomecontact);

                                    $("#contact_id_c").val(idcontact);
                                    $("#contacts_c").val(nomecontact);
                                    $("#Documents_subpanel_full_form_button").click();
                        },1500);
                };
            },1000);
        });

});

Я пытаюсь заполнить некоторые поля в SuiteCRM после некоторых действий. Этот код хорошо работает на Mozilla Firefox, но не на Google Chrome. После второго оповещения (оповещения («загружено»)) перестает работать на Chrome. Кто-нибудь может понять в чем проблема?

1 Ответ

0 голосов
/ 12 июня 2019

Вы должны включить некоторые дополнительные сведения, например, в каком модуле / подробном представлении / редактировать vew / popup вы пытаетесь это сделать.

Например, в модуле учетной записи этот идентификатор documents_cases_create_button не существует.

Кроме того, я не нашел доказательств того, что это documents_cases_create_button существует в официальном репозитории SuiteCRM.

Если вы делаете что-то нестандартное, укажите.

также, если вы загружаете контент, используя AJAX, и что AJAX выполняется одновременно с нажатием $("#subpanel_title_documents").click(function(){, тогдаDOM объект documents_cases_create_button может быть еще не совсем там.

Если вы не знаете, установите тайм-аут перед настройкой этого слушателя

 $("#subpanel_title_documents").click(function(){
    console.log("Documents Clicked")
    setTimeout(function(){
       console.log("Just waited 3 secs for dom to finish loading AJAX content")
       $("#documents_cases_create_button").click(function(){
           console.log("I finally got the event I wanted");
       })
    },3000);
  })

Если это было проблемой, то вашвариант будет установить какой-то вид наблюдателя.(это то, что я делаю для загруженного контента AJAX, когда нет собственных обратных вызовов).

...