ASP.NET Webforms不为Chrome/iOS呈现回发JavaScript函数

luk*_*fer 8 asp.net google-chrome browser-detection .net-4.0 ios

当我们Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9A405 Safari/7534.48.3向.NET 4 webforms应用程序提供用户代理 时,页面上不存在定义函数__doPostBack的脚本,因此使用它的任何内容都不起作用.

如果我们提供任何其他用户代理字符串(例如,Safari),它可以正常工作.有人可以解释一下吗?

luk*_*fer 16

因此问题是.net用户代理无法被.net识别,因此它假定它正在处理低级浏览器.

为了解决这个问题,我们添加~/App_Browsers/CriOS.browser了以下内容:

<browsers>
    <browser id="CriOS" parentID="Safari">
        <identification>
            <userAgent match="CriOS" />
        </identification>

        <capabilities>
            <capability name="browser" value="CriOS" />
            <capability name="ecmascriptversion" value="3.0" />
            <capability name="javascript" value="true" />
            <capability name="javascriptversion" value="1.7" />
        </capabilities>
    </browser>
</browsers>
Run Code Online (Sandbox Code Playgroud)