更新面板Asyn回发不适用于Outlook Web加载项中的FireFox

时间:2018-10-23 10:43:29

标签: asp.net firefox iframe updatepanel outlook-web-addins

我使用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,在打开外接程序之前,如果我打开控制台并清除日志,然后使用外接程序,它将起作用。

1 个答案:

答案 0 :(得分:0)

我最终通过将Office.js引用放在head部分的末尾来修复了它。 好像Outlook Web加载项在Firefox中运行一样,即使遇到一个错误,Firefox也会停止执行JS代码。而且,如果我将Office.js放在最前面,则我使用的Materialize库会导致错误,从而阻止postback的发生,因此不会更新UI。