【问题标题】:Function __doPostBack() does not work in iOS, iPadOS browsers函数 __doPostBack() 在 iOS、iPadOS 浏览器中不起作用
【发布时间】:2020-10-16 05:10:39
【问题描述】:

我正在使用 .NET Framework 4.6、C# 和 Javascript 开发一个 ASP.NET Webform 网站,

我使用 HiddenField 存储导航抽屉中的值,然后执行回发以更新 UpdatePanel 中的值,但似乎代码停留在 iOS、iPadOS 浏览器(所有 Safari、Chrome、Firefox)上的 __doPostBack() ,对于 Windows 浏览器,一切正常。以下是我的 Javascript 代码:

function headChange(e) {
   __doPostBack('<%=HiddenField1.ClientID%>', '');
};

我尝试了网上找到的几种方法,例如:

  • 在 web.config 中添加了&lt;browserCaps userAgentCacheKeyLength="256"/&gt;
  • __doPostBack('&lt;%=HiddenField1.ClientID%&gt;', ''); 之后添加return false;
  • __doPostBack('&lt;%=HiddenField1.ClientID%&gt;', ''); 替换为&lt;%= Page.ClientScript.GetPostBackEventReference(HiddenField1, String.Empty) %&gt;;
  • 将浏览器文件添加到 App_Browsers 文件夹

但都没有运气,

有没有人遇到过同样的问题并找到了解决方案? 非常感谢!

【问题讨论】:

  • 打开你的浏览器调试信息,看看你在javascript上有什么错误。

标签: javascript ios asp.net browser dopostback


【解决方案1】:

我在 Sarari 中通过 do Inspect Element 发现了错误,错误显示如下:

https://ibb.co/ynL1Zhp

“Function.caller used to retrieve strict caller”由 MicrosoftAjaxWebforms.js 中的 __doPostBack 函数引起

然后我通过https://stackoverflow.com/a/25686598/7819116找到了解决方案

现在我的网站在 iOS 浏览器中运行良好

感谢大家的支持!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2020-10-01
    相关资源
    最近更新 更多