Мы используем asp. net веб-форму для разработки нашей веб-надстройки для Outlook.
В надстройке возникла проблема, когда внутри панели обновления произошла обратная передача, некоторые ошибки на стороне клиента будет брошен, и это сделает неисправности надстройки. Эта проблема довольно непостоянна, и мы так и не нашли решение.
Одна из ошибок похожа на эту h is not a constructor
Мне удалось сократить надстройку до самой простой из возможных форм. , где присутствуют только офис. js и менеджер сценариев. Можно заметить, что если нажата кнопка, происходит обратная передача, и есть некоторый шанс, что будет выдана ошибка:
Uncaught TypeError: Cannot read property 'PageRequestManager' of undefined
at Sys._Application.dispose (VM7863 ScriptResource.axd:5)
at Sys._Application._unloadHandler (VM7863 ScriptResource.axd:5)
at VM7863 ScriptResource.axd:5
at b (VM7863 ScriptResource.axd:5)
Интересно, что это произойдет только в контексте внешнего вида. Когда та же структура используется вне внешнего вида, ошибки не будет. Похоже, что введенный сценарием Javascript конфликтует с офисом. js или средой мировоззрения или обоими. Но я не могу получить ответ / решение.
Вот мой пример кода:
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- For the JavaScript APIs for Office, go to https://aka.ms/officejs-overview to learn more. -->
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
</head>
<body>
<h4>Sample APP to replicate the scripte manager issue</h4>
<form id="form" runat="server">
<asp:scriptmanager id="ScriptManager" runat="server" scriptmode="Release" asyncpostbacktimeout="300" />
<asp:button id="button" runat="server" text="Click Me!" />
</form>
<script>
Office.initialize = function () { };
var prm = Sys.WebForms.PageRequestManager.getInstance();
</script>
</body>
</html>
Я обнаружил только одну подобную проблему в SO, но она не очень помогает:
Надстройка Outlook, не удается прочитать свойство BeginRequestEventArgs с неопределенным значением