iPad上的Chrome无法使用ASP.NET 4

时间:2012-07-21 11:30:52

标签: asp.net ipad google-chrome

我刚刚下载了适用于iPad的Google Chrome ,我注意到它无法与ASP.NET 4网站一起使用!

例如,创建一个简单的页面:

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Protected Sub LinkButton1_Click(sender As Object, e As System.EventArgs)
    Response.Write("Link button was clicked")
End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
    </div>
    </form>
</body>
</html>

现在尝试单击“链接”按钮,但不会触发回发事件。

我似乎无法调试,因为没有javascript控制台可以找出发生了什么。

!!更新!!

我发现您需要从Chrome中的设置下拉菜单中选择 请求桌面版 才能使其正常运行。

!!更新!!

ASP.NET无法识别某些浏览器的最新版本,因此会将它们视为低级浏览器。 (基本上:没有JavaScript。) 修复是获取更新的浏览器定义文件。

我们在哪里可以获取Chrome的更新浏览器定义文件?

4 个答案:

答案 0 :(得分:8)

我遇到了同样的问题。大多数一切都在我的页面上正常工作,只有少数在客户端修改的项目显示不正确。

我检查了从ipad上的每个浏览器返回的头文件,发现在Chrome桌面模式下,它只是假装是一个Mac Box,在标题中发送以下内容: 的Mozilla / 5.0 +(Macintosh上; +英特尔+的Mac + OS + X + 10_7_3)+为AppleWebKit / 534.53.11 +(KHTML,+等+壁虎)+版/ 5.1.3 + Safari浏览器/ 534.53.10

当它处于标准模式时,它会感知标题中的以下内容: 的Mozilla / 5.0 +(ipad公司; + CPU + OS + 6_0 +等+ MAC + OS + X)+为AppleWebKit / 534.46.0 +(KHTML,+等+壁虎)+ CriOS / 21.0.1180.82 +移动/ 10A403 +的Safari / 7534.48.3

我尝试在我的“app_browsers”目录中添加一个新浏览器,复制“chrome”并将其重新命名为“chromeios”,并用CriOS替换“chrome”useragent。这没什么,我甚至不确定“app_Browsers”目录中的文件是做什么的。

那是我遇到这个问题的时候。用户 vamshik Jay Douglass 建议的答案,当我放在一起工作时。

然而,Jay的错误是因为它有错误的用户代理(它应该是“crios”)。

用户geo1701然而抱怨将此添加到每个页面。这可以通过创建一个继承System.Web.UI.Page的类,然后使用“protected void Page_PreInit”事件添加上面的代码,然后用新类替换每个网页上的继承来轻松完成。然后,如果您需要在每个页面中添加所需的内容,那么您也可以添加该类。

我也想知道是否有办法将它添加到global.asax类?但我猜不是......

仍在寻找更好的解决方案。如果我找到一个,我会更新。

找到以下相关帖子:

Chrome for iOS user agent on iPad

ASP.NET Webforms Doesn't Render Postback JavaScript Function for Chrome/iOS

<强>更新 我找到了Scott Hanselman的this。当他谈论饼干时,我认为他的建议可能会让我们朝着正确的方向前进。

确定!最终更新!!!

安装.NET Framework 4.5并从app_browsers目录中删除文件后,我的iPad上的Chrome工作正常。我查看了.net 4.5提供的新 .Browser 文件中的条目,并没有什么值得注意的,所以我猜它还有更多,然后更新到。浏览器文件。

.Net framework 4.5可以下载here

答案 1 :(得分:1)

ASP.NET可能会错误地将iPad上的Chrome检测为不支持JavaScript的“低级”浏览器。 ASP.NET使用用户代理字符串来检测低级浏览器。要强制Chrome被检测为“高级”浏览器,您可以执行以下操作:

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

答案 2 :(得分:1)

以下为我工作......

if (Request.UserAgent != null && Request.UserAgent.IndexOf("crios", StringComparison.OrdinalIgnoreCase) > -1)
{
    this.ClientTarget = "uplevel";
}

答案 3 :(得分:0)

ASP.NET可能会生成无效页面。

我不了解iPhone,但Android版本有Remote Debugging。您可以尝试在那里检查页面。