ModalPopupExtender 在某些计算机上不显示

ModalPopupExtender doesn't show on some computers

我维护着一个 vb.net 网站。页面上的按钮显示 AjaxControlToolkit.dll ModalPopupExtender。当我单击该按钮时,页面会重新加载,但不会出现弹出窗口。

我下面的测试涵盖了我能想到的场景。请帮我诊断和修复。

啊哈 - 找到了!

解决方案

ASPX/HTML指的是http://ajax.googleapis.com。更改对 https 的引用使 ModalPopupExtender.Show() 对我来说可以正常工作。

Explanation/Diagnosis(如果可以进一步说明,请评论)

当我检查 html 服务于我的浏览器时,我注意到它定义了一个名为 fn() 的 javascript 函数。 fn() 的定义未出现在 html 服务于服务器浏览器中。更改 https 后,fn() 不再出现在我收到的 html 中。 ModalPopupExtender 工作的另一个页面没有任何对 googleapis.com.

的引用

我假设使用 http 而不是 https 导致 ajax.googleapis.com 提供 fn() 并且 fn() 在某种程度上干扰了我的 ModalPopupExtender 的正常操作。

这是 fn() 的定义:(function {var fn = function() {Sys.Extended.UI.ModalPopupBehavior.invokeViaServer('ctl00_cphContent_ModalPopupExtenderConfirm', true); Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);})();

注意:http 还包含另一个与 ModalPopupExtender 相关的 javascript 函数。但是在工作页面上有一个类似的,在服务于服务器浏览器的工作版本中,在我的固定版本中。所以,我假设函数是正确的。