11

iPad 用の Google Chrome をダウンロードしたところ、ASP.NET 4 Web サイトでは動作しないことに気付きました。

たとえば、簡単なページを作成します。

<%@ 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

4 に答える 4

8

私も同じ問題を経験しました。私のページではほとんどすべてが正常に機能しますが、クライアント側で変更されたいくつかの項目が正しく表示されません。

ipadの各ブラウザから返されるヘッダーファイルを調べたところ、デスクトップモードのChromeでは、Macボックスのふりをして、ヘッダーに次のメッセージが送信されていることがわかりました。Mozilla / 5.0+(Macintosh; + Intel + Mac + OS + X + 10_7_3)+ AppleWebKit / 534.53.11 +(KHTML、+ like + Gecko)+ Version / 5.1.3 + Safari / 534.53.10

標準モードの場合、ヘッダーに次のように表示されます: Mozilla / 5.0 +(iPad; + CPU + OS + 6_0 + like + Mac + OS + X)+ AppleWebKit / 534.46.0 +(KHTML、+ like + Gecko)+ CriiOS / 21.0.1180.82 + Mobile / 10A403 + Safari / 7534.48.3

新しいブラウザを「app_browsers」ディレクトリに追加し、「chrome」をコピーして「chromeios」という名前に変更し、内部の「chrome」ユーザーエージェントをCriOSに置き換えようとしました。これは何もしませんでした、そして私は「app_Browsers」ディレクトリのファイルが何かをしているとさえ確信していません。

その時、私はこの質問に出くわしました。ユーザー vamshikJayDouglassが提案した答えは、まとめるとうまくいきました。

しかし、Jay'sは、間違ったユーザーエージェント(「crios」である必要があります)を持っているという点で正しくありませんでした。

ただし、ユーザーgeo1701は、これをすべてのページに追加することに不満を持っていました。これは、System.Web.UI.Pageを継承するクラスを作成し、上記のコードに「protected void Page_PreInit」イベントを追加してから、各Webページの継承を新しいクラスに置き換えることで簡単に実行できます。次に、すべてのページに必要なものを追加する必要がある場合は、そのクラスにも追加できます。

それをglobal.asaxクラスに追加する方法があるかどうかも疑問に思っていますか?しかし、私は推測していません...

まだより良い解決策を探しています。見つけたら更新します。

次の関連する投稿が見つかりました:

iPad上のChromeforiOSユーザーエージェント

ASP.NETWebフォームはChrome/iOSのポストバックJavaScript関数をレンダリングしません

更新 私はこれをスコット・ハンゼルマンが見つけました。彼がクッキーについて話している間、彼の提案は私たちを正しい方向に導くかもしれないと思います。

わかった!最終更新!!!

.NET Framework 4.5をインストールし、app_browsersディレクトリからファイルを削除した後、iPadのChromeは機能しています。.net 4.5によって提供された新しい.Browserファイルのエントリを調べましたが、目立ったものは何もなかったので、 .browserファイルの更新よりも多くのことがあったと思います。

.NetFramework4.5はここからダウンロードできます

于 2012-11-01T14:49:07.763 に答える
1

以下は私のために働いた...

if (Request.UserAgent != null && Request.UserAgent.IndexOf("crios", StringComparison.OrdinalIgnoreCase) > -1)
{
    this.ClientTarget = "uplevel";
}
于 2012-10-01T18:57:12.810 に答える
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";
    }
}
于 2012-08-04T08:21:40.087 に答える
0

ASP.NET が無効なページを生成する可能性があります。

iPhoneはわかりませんが、Android版にはリモートデバッグがあります。そこでページの検査を試すことができます。

于 2012-09-12T03:07:46.420 に答える