[英]Onclick firing twice in Chrome, not IE or Firefox
很抱歉,我的帖子重复了, 为什么setTimeout在Chrome中触发两次,但在IE或Firefox中不能触发两次? 。
我实际上需要以下javascript调用才能内联处理超链接,因此我想知道是否有人有任何想法。 单击任何一个超链接都会导致javascript函数GenerateNewNumber在Chrome(而不是IE或Firefox)中触发两次。 在Chrome中单击一次后,它只会在以后的单击中添加到标签中一次。 再次使用Chrome 20.0.1132.57,IE9和Firefox 13。
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function GenerateNewNumber() {
var randomnumber = Math.floor(Math.random() * 1234);
document.getElementById('NumberLabel').innerHTML += '<br>' + 'Random Number is ' + randomnumber;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:LinkButton ID="Button1" runat="server" OnClientClick="GenerateNewNumber(); return false;">Click for Random Number Test 1</asp:LinkButton><br />
<a id="Button2" href="#" onclick="GenerateNewNumber(); return false;" target="_blank">Click for Random Number Test 2</a>
<asp:Label ID="NumberLabel" runat="server"></asp:Label>
</form>
</body>
</html>
再次感谢你的帮助。
这可能是您使用的Google扩展程序的结果。 但是,我确实记得有此问题,并且在超链接的onclick中指定了return false。 我记得有些世俗的调整使它停止发射两次。
尝试删除“ return false”后面的分号。
查看本文, asp.net LinkButton在Google Chrome中不起作用
您可以尝试此方法。
protected override void OnPreInit(EventArgs e)
{
if (Request.UserAgent != null && (Request.UserAgent.IndexOf("AppleWebKit") > 0)) // added for compatibility issues with chrome
{
this.ClientTarget = "uplevel";
}
base.OnPreInit(e);
}
最后,您应该考虑使用链接/锚以外的元素/标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.