8

当我们向 .NET 4 webforms 应用程序提供用户代理 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时,定义函数 __doPostBack 的脚本不会出现在页面上,因此使用它的任何内容都不起作用。

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

4

1 回答 1

16

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

为了解决,我们添加~/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>
于 2012-09-08T02:27:34.693 回答