gpt4 book ai didi

asp.net - ASP.NET AJAX 将被禁用的原因

转载 作者:行者123 更新时间:2023-12-04 11:59:36 26 4
gpt4 key购买 nike

我有一个使用 ASP.NET AJAX 和 AJAX Control Toolkit 的 ASP.NET 应用程序。该应用程序在 PC 上的所有最新浏览器上运行良好。它在我的 iPad 上也能正常工作,至少在第一次访问应用程序时是这样。我发现如果我关闭 iPad 并稍后返回该页面(通过书签或类似方式),该站点就会损坏。我已将故障范围缩小到 ASP.NET/ASP.NET AJAX 问题/错误/限制,并且我正在寻找一些帮助以取得进展。

使用 Fiddler 作为 iPad 的代理服务器,我在重新打开页面时发现了以下问题。

  • 我的 *.skin 文件没有正确应用。生成的样式标签根本不包括在 *.skin 文件中指定的一些参数。
  • 该页面不包含 MicrosoftAjaxWebForms.js 文件。 (工作时,它会在所有 ToolkitScriptManager 脚本的正上方发出对 ScriptResource.axd 的引用。
  • 该页面不包含对另一个以函数 WebForm_FindFirstFocusableChild(control) 开头的 js 文件的引用
  • 该页面不包含__LASTFOCUS、__EVENTTARGET 和__EVENTARGUMENT 等几个隐藏字段
  • 该页面不包含使用 document.forms['aspnetForm'] 和定义 __doPostBack 的脚本块。
  • 该页面不包含执行 Sys.WebForms.PageRequestManager._initialize
  • 的脚本块
  • 其他一些初始化脚本不存在(设置焦点、创建更新进度等)

  • 不知何故,框架似乎决定它不需要这些脚本并且不发出它们。鉴于所有脚本都是相互关联的,因此必须有一个共同的原因。这可能与不包含 *.skin 属性的原因有关。有任何想法吗?我会考虑浏览器功能,但这只会发生在随后访问该站点时,而不是第一次访问时。

    编辑:
    绝对看起来像浏览器功能问题。

    有效的请求:
    用户代理:Mozilla/5.0(iPad;U;CPU OS 4_3_3,如 Mac OS X;en-us)AppleWebKit/533.17.9(KHTML,如 Gecko) 版本/5.0.2

    没有的请求:
    用户代理:Mozilla/5.0(iPad;U;CPU OS 4_3_3,如 Mac OS X;en-us)AppleWebKit/533.17.9(KHTML,如 Gecko) 手机/8J2

    将尝试在 App_Browsers 中创建自定义文件并回发额外信息。

    最佳答案

    根本问题确实是当应用程序以全屏模式加载时,ASP.NET 将 iPad 识别为通用的下层“Mozilla”而不是 Safari。它认为不支持 JavaScript,等等。

    解决方案是将以下内容添加到所有 ASP.NET 页面(通过将其添加到所有 ASP.NET 页面派生自的基页)。

        protected void Page_PreInit(object sender, EventArgs e)
    {
    if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1)
    {
    this.ClientTarget = "uplevel";
    }
    }

    (我尝试创建一个 *.browser 文件,但失败了,因为它似乎无法从我自己的内部引用框架的 *.browser 文件。)

    关于asp.net - ASP.NET AJAX 将被禁用的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072293/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com