2012-07-22 91 views
1

對不起,我的文章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> 

再次感謝您的幫助。

+0

[爲什麼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

+0

是的,它很相似,但這個例子中的問題不是setTimeout,而是我需要它執行內聯,而不是我提供的jQuery示例。 – user199962 2012-07-22 02:34:58

+0

http://jsfiddle.net/HUh8E/我在Chrome 20或21上沒有這樣的問題。你能否在沒有任何ASP的情況下得到一個失敗的測試用例? – ephemient 2012-07-22 05:00:44

回答

0

這可能是您使用的谷歌擴展的結果。但是,我記得有這個問題,並且在超鏈接的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

相關問題