【发布时间】:2017-03-03 08:05:58
【问题描述】:
我在 Microsoft Edge 中的 ASP.NET Web 应用程序有一个奇怪的问题。
单击按钮时,单击事件在页面初始化和页面加载时被调用了两次。按钮有句柄 btn.ServerClick
这只发生在 Microsoft Edge 上。 Chrome、IE8-IE11、Safari 等其他浏览器运行正常。我正在使用 Microsoft Edge 20.10240.16384.0 和 20.10240.17146.0
你们中有人遇到过类似的问题吗?是什么导致了这个问题,您是如何解决这个问题的?
我重现了这个问题。
这是我的按钮标记代码:
<button id="btn" runat="server">HTML button Save</button>
这是外部 Javascript:
var trigger = new trigger_class();
function trigger_class() {
}
trigger_class.prototype.postback = function(ctrl_id) {
__doPostBack(ctrl_id,'');
return true;
}
var track = new track_class();
function track_class() {
}
track_class.prototype.do_something = function(ctrl_id, ctrl_client_id) {
//do something
trigger.postback(ctrl_id);
}
这是vb代码:
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub page_init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'-->Set something
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'-->Set something
End Sub
Protected Sub control_prerender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Me.btn.Attributes.Item("onclick") = "return track.do_something('" & Me.btn.UniqueID & "', '" & Me.btn.ClientID & "');"
End Sub
Private Sub btn_click(ByVal ao_sender As Object, ByVal ao_event_args As EventArgs) Handles btn.ServerClick
'--> validate and save
End Sub
End Class
【问题讨论】:
-
我见过类似的问题,但不确定原因并修复。
-
我已经解决了我的问题。我测试了两种可能的修复方法并且工作正常:1)在按钮标签上添加 type="button" 属性 2)使用“return false;”对于javascript函数回发
标签: javascript asp.net vb.net microsoft-edge