окно.закрыть(); в моем JS не работает с Microsoft Dynamic Crm window.parent.xrm

Всем привет и спасибо, что прочитали это заранее.

У меня возникла проблема с настройкой панелей для подписи в Microsoft 365 Dynamic CRM. Я прочитал много статей здесь и на веб-сайте Microsoft, но потерпел неудачу при применении любого из решений, и мне было интересно, может ли эксперт помочь мне понять, что мне не хватает?

Прежде всего, я использую планшеты для подписи Topaz System. Я внедрил блокнот для подписи, он работает и отлично работает, только когда я нажимаю кнопку «Принять». окно.закрыть(); в JS не закрывает окно.

чтобы дать вам лучшее понимание, у нас есть веб-ресурс подписи, который определен для включения во все объекты, которые необходимо подписать. все объекты с подписью требуют наличия кнопки «Подписаться здесь» (другой веб-ресурс), которая представляет собой html с функцией открытия «SignaturePad.html». Код ниже:

      <html>
<head></head>
<body style="background-color: rgb(255, 255, 255); overflow-wrap: break-word;">

<div style="width: 247px;">
<input id="SignButton" onclick="openSignaturePad()" type="button" value="Sign Here"><br>
</div>

<script>
function openSignaturePad()
{
  window.parent.Xrm.Utility.openWebResource("SignaturePad.html", null, 450, 250);
}
</script>

</body>
</html>

Это откроет наш холст панели подписи «SignaturePad.html» (главное окно подписи) с функциональностью 3 кнопок.

1- Подписать (при нажатии они могут начать подписывать на панели для подписи)

2- Очистить (если щелкнуть, блокнот для подписи очистится)

3- Принять (если они нажимают, система захватывает имя объекта формы, за которым следует «_signature», за которым следует сгенерированная Str подписи, а затем закрывает окно)

на шаге 3, когда этот процесс завершен, он должен закрыть окно, как уже упоминалось, но этого не происходит. для лучшего понимания вот JS кнопки «Принять»:

        function saveSignature()
  {
    if(NumberOfTabletPoints() == 0)
    {
      alert("Please sign before continuing");
    }
    else
    {
      SetTabletState(0, tmr);

      SetSigCompressionMode(1);

      //RETURN BMP BYTE ARRAY CONVERTED TO BASE64 STRING
      SetImageXSize(396);
      SetImageYSize(110);
      SetImagePenWidth(5);
      GetSigImageB64(SigImageCallback);
      var entityName = opener.Xrm.Page.data.entity.getEntityName();
      var splitEntityName = entityName.split("_");
      entityPrefix = splitEntityName[0];
      opener.Xrm.Page.getAttribute(entityPrefix + "_signature").setValue(topazSigData);
      window.close();
      //parent.window.close();
      //alert("Signature Completed You Can Safely Close This Window");
    }
  }

Я пробовал part.window.close(); как упоминалось в другом тренде, но не сработало.

где я смущен, когда нажимаю «подписать здесь» и запускаю функцию «window.parent.xrm», предполагает ли это сделать «SignaturePad.html» родительским, если да, то почему window.close() в «SignaturePad.html» " не работает?

Любая помощь будет высоко ценится.

0 ответов

Другие вопросы по тегам