Onclick在Chrome中触发两次,不是IE或Firefox
问题描述:
对不起,我的文章Why does setTimeout fire twice in Chrome, but not IE or Firefox?重复。Onclick在Chrome中触发两次,不是IE或Firefox
我实际上需要下面的javascript调用来为超链接工作,所以我想知道如果任何人有任何想法。点击任一超链接会导致JavaScript功能生成新号码在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>
再次感谢您的帮助。
答
这可能是您使用的谷歌扩展的结果。但是,我记得有这个问题,并且在超链接的onclick中指定了返回false。我记得有些世俗的调整让它停止了两次发射。
尝试删除'return false'后面的分号。
审阅了这篇文章,asp.NET LinkButton not working in 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);
}
最后,您应该考虑使用链接/锚点以外的元素/标记。
+0
感谢布雷特 - 这是一个引起问题的扩展(双击)。我一定会在将来看到这一点。 – user199962 2012-07-23 06:04:46
[为什么setTimeout在Chrome中触发两次,但不是IE或Firefox?](http://stackoverflow.com/questions/11596982/why-does-settimeout-fire-twice-in-chrome-but -not-ie-or-firefox) – 2012-07-22 02:19:09
是的,它很相似,但这个例子中的问题不是setTimeout,而是我需要它执行内联,而不是我提供的jQuery示例。 – user199962 2012-07-22 02:34:58
http://jsfiddle.net/HUh8E/我在Chrome 20或21上没有这样的问题。你能否在没有任何ASP的情况下得到一个失败的测试用例? – ephemient 2012-07-22 05:00:44