окно.закрыть(); в моем 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» " не работает?
Любая помощь будет высоко ценится.