ボタンとラベルが付いた単純な ASP.NET Web フォーム ページがあります。Windows で Safari 5.1.7 を使用している場合、ボタンをクリックするとポストバックが発生しますが、奇妙な理由で実際にはボタン クリック イベントが発生しません。
JavaScript エラーはありません。UpdatePanels や AJAX は一切ありません。これは文字通り私がテストしているページです:
<!doctype html>
<html lang="en">
<head runat="server">
<meta charset="utf-8">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
コードビハインドは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "test";
}
ボタンがクリックされると、Page_Load イベントが 1 回発生しますが、Page.IsPostBack は true ではなく FALSE を返し、Label1.Text は設定されません。
この問題は Safari でのみ発生することに注意してください。IE8 以降、FF15 以降、Chrome 21 以降、Opera 12 以降ではすべて正常に動作します。
非表示のフィールド サイズの制限 (したがってビューステート) に関する Safari の奇妙さに関する多数の投稿を読みましたが、このページはビューステートをほとんど使用していないはずです (使用する場合)。UpdatePanels や AJAX 呼び出しに関連する JavaScript エラーに関する投稿も多数ありますが、ご覧のとおり、ここにはありません。
この質問も関連していると思いますが、問題を再現できるように、html/cs の例を使用して新しい質問を開始したかったのです。
何か足りないのでしょうか、それとも Windows の Safari は本当におかしいのでしょうか?