我有一个带有按钮和标签的简单 ASP.NET 网络表单页面。在 Windows 上使用 Safari 5.1.7 时,单击按钮会导致回发,但实际上不会因为某些奇怪的原因触发按钮单击事件。
没有 javascript 错误。没有任何类型的 UpdatePanel 或 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 事件确实会触发一次,但 Page.IsPostBack 返回 FALSE 而不是 true,并且永远不会设置 Label1.Text。
请注意,此问题仅在 Safari 中发生。在 IE8+、FF15+、Chrome 21+ 和 Opera 12+ 中一切正常。
我已经阅读了许多关于隐藏字段大小限制(以及因此视图状态)的 Safari 怪异的帖子——但是这个页面甚至不应该使用视图状态(如果有的话)。还有很多关于与 UpdatePanels 和/或 AJAX 调用相关的 javascript 错误的帖子,但正如您所见,这里没有这些帖子。
我相信这个问题也是相关的,但我想用示例 html/cs 开始一个新问题,这样你就可以重现这个问题。
我错过了什么还是Windows上的Safari真的很奇怪?