ModalPopupExtender 在某些计算机上不显示
ModalPopupExtender doesn't show on some computers
我维护着一个 vb.net 网站。页面上的按钮显示 AjaxControlToolkit.dll ModalPopupExtender。当我单击该按钮时,页面会重新加载,但不会出现弹出窗口。
我下面的测试涵盖了我能想到的场景。请帮我诊断和修复。
这个ModalPopupExtender过去成功了。当我们移动到新服务器时,或者当我们实施 https 或浏览器更新时,或者在那之后的某个其他时间,错误可能已经开始。
已尝试 Chrome(最新)和 Firefox。
我通过 RDP 连接到服务器并打开了 Chrome 中的页面。 ModalPopupExtender 成功。与我的电脑相同的 Chrome 版本。所以,不太可能是代码问题。
同一站点上的不同页面成功使用了 ModalPopupExtender。所以,不太可能是本地 PC 设置。
我在 ModalPopupExtender.Show() 前后放置了几行测试代码。都成功了。
啊哈 - 找到了!
解决方案
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 函数。但是在工作页面上有一个类似的,在服务于服务器浏览器的工作版本中,在我的固定版本中。所以,我假设函数是正确的。
我维护着一个 vb.net 网站。页面上的按钮显示 AjaxControlToolkit.dll ModalPopupExtender。当我单击该按钮时,页面会重新加载,但不会出现弹出窗口。
我下面的测试涵盖了我能想到的场景。请帮我诊断和修复。
这个ModalPopupExtender过去成功了。当我们移动到新服务器时,或者当我们实施 https 或浏览器更新时,或者在那之后的某个其他时间,错误可能已经开始。
已尝试 Chrome(最新)和 Firefox。
我通过 RDP 连接到服务器并打开了 Chrome 中的页面。 ModalPopupExtender 成功。与我的电脑相同的 Chrome 版本。所以,不太可能是代码问题。
同一站点上的不同页面成功使用了 ModalPopupExtender。所以,不太可能是本地 PC 设置。
我在 ModalPopupExtender.Show() 前后放置了几行测试代码。都成功了。
啊哈 - 找到了!
解决方案
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 函数。但是在工作页面上有一个类似的,在服务于服务器浏览器的工作版本中,在我的固定版本中。所以,我假设函数是正确的。