我使用asp.net构建了Outlook Web加载项的后端。
我有一个更新面板,里面有两个下拉列表。第一个下拉列表的autopostback
设置为true,在onChange
事件发生后,后面的代码将重新填充第二个下拉列表根据选择的第一个下拉菜单。因此第二个下拉列表取决于第一个下拉列表。
这在Chrome,IE上正常工作。
但是,当我使用Firefox在Office 365中运行加载项时,不会发生重新填充。我可以看到该事件在后端被击中,但是UI并未更改。
在控制台中,我出现此错误TypeError: Sys.WebForms is undefined
有趣的是,如果我在正常的Firefox窗口中运行该应用程序,它将正常运行,但是当在带有Firefox的Office 365中运行时,它将无法运行。我认为这是因为它在iframe
内部运行,而iframe
并不真正支持update-panel
。但是IE和Chrome没有这个问题。
更新:
1,如果没有发生更新,我可以右键单击并更新iframe,通常它可以工作。
2,在打开外接程序之前,如果我打开控制台并清除日志,然后使用外接程序,它将起作用。
答案 0 :(得分:0)
我最终通过将Office.js
引用放在head
部分的末尾来修复了它。
好像Outlook Web加载项在Firefox中运行一样,即使遇到一个错误,Firefox也会停止执行JS代码。而且,如果我将Office.js
放在最前面,则我使用的Materialize
库会导致错误,从而阻止postback
的发生,因此不会更新UI。