asp.net - 更新面板异步回发不适用于 Outlook Web 加载项中的 FireFox
问题描述
我使用 asp.net 构建了 Outlook Web 加载项的后端。
我有一个更新面板和两个下拉列表。第一个下拉列表autopostback
设置为 true,并且在onChange
事件发生时,后面的代码将根据第一个下拉列表的选择重新填充第二个下拉列表。所以第二个下拉取决于第一个。
这适用于 Chrome、IE。
但是当我使用 Firefox 在 Office 365 中运行加载项时,不会发生重新填充。我可以看到事件在后端被命中,但 UI 没有改变。
在控制台中我有这个错误TypeError: Sys.WebForms is undefined
有趣的是,如果我在普通的 Firefox 窗口中运行该应用程序,它会工作,但当在 Office 365 中使用 Firefox 运行时,它不会。我想是因为它是在里面运行的iframe
,并iframe
没有真正支持update-panel
。但是 IE 和 Chrome 没有这个问题。
更新:
1,如果更新没有发生,我可以右键单击并更新 iframe,通常它会起作用。
2、在打开外接程序之前,如果我打开控制台并清除日志,然后再使用外接程序,就可以了。
解决方案
我最终通过将Office.js
参考放在该部分的末尾来修复它head
。似乎如果 Outlook Web 加载项在 Firefox 中运行,即使遇到一个错误,Firefox 也会停止执行 JS 代码。如果我把 放在Office.js
前面,我使用的库Materialize
会导致错误,阻止postback
发生,所以 UI 不会更新。
推荐阅读
- html - Angular 4 - 单击按钮时要附加文本区域以动态查看每个按钮单击
- database - 在oracle中将一行拆分为多个
- javascript - 如何设置通过类更改为“自动”-javascript 的 DIV 的“高度”属性?
- javascript - AngularJS我如何过滤嵌套对象
- c++ - 在地图中使用无符号字符向量
- c# - c#正则表达式,我怎样才能逃脱[[和]]
- java - for循环中的增量给出不同的答案
- android - recyclerview 交错网格布局管理器加载更多进度条
- django - SMTPSenderRefused at / (501, b'5.1.7 无效地址 [MAXPR01MB0396.INDPRD01.PROD.OUTLOOK.COM]', '=?utf-8?q?Your?=')
- javascript - JS中的日期格式