代码之家  ›  专栏  ›  技术社区  ›  Dan Williams

__doPostBack在firefox中不起作用

  •  3
  • Dan Williams  · 技术社区  · 16 年前

    <asp:LinkButton ID="DeleteAllPicturesLinkButton" Enabled="False" OnClientClick="javascript:return confirm('Are you sure you want to delete all pictures? \n This action cannot be undone.');" OnClick="DeletePictureLinkButton_Click" CommandName="DeleteAll" CssClass="button" runat="server">
    

    javascript确认正在启动,所以我知道javascript正在工作,特别是uu doPostBack事件。页面上还有很多内容,只是不知道是否需要发布整个页面。

    有什么想法吗?


    我希望这是正确的方法,但我找到了答案。我想我应该把它放在这里,而不是放在一个“答案”里

    如果其他人也有同样的问题,希望这能有所帮助。我仍然不知道具体是什么导致了这个问题,但这是我的解决办法。

    14 回复  |  直到 16 年前
        1
  •  5
  •   Seibar    16 年前

    检查您的用户代理字符串。有一次,同样的事情也发生在我身上,我意识到这是因为我正在测试一些页面作为“谷歌机器人”。生成的JavaScript取决于知道用户代理是什么。

    从…起 http://support.mozilla.com/tiki-view_forum_thread.php?locale=tr&comments_parentId=160492&forumId=1

    要重置用户代理字符串,请在位置栏中键入about:config并按enter键。这将显示一个首选项列表。在过滤器框中输入general.useragent,这将显示一些首选项(可能有4个)。如果设置了用户状态,右键单击首选项并选择重置

        2
  •  3
  •   Todd    15 年前

    我在Firefox中也遇到了同样的问题(doPostBack不工作),造成了整整一个小时的时间浪费。问题原来是HTML。如果您像这样使用HTML:

    <input type="button" id="yourButton" onclick="doSomethingThenPostBack();" value="Post" />
    

    其中“doSomethingThenPostBack”只是一个JavaScript方法,它调用 不会 在Firefox中发布。信息技术 在IE和Chrome中回发。要解决此问题,请确保您的HTML为:

    <input type="submit" id="yourButton" ...
    

    关键是 类型 属性它一定是“ 提交

        3
  •  1
  •   Paulj    16 年前

        4
  •  1
  •   Darren Kopp    16 年前

    是因为你在做什么 回来 证实似乎return语句应该阻止其余代码触发。我认为一个if语句会起作用

    if (!confirm(...)) { return false; } _doPostBack(...);
    

    你能把所有的js代码发布在链接的OnClick中吗?

    编辑

    <a href="javascript:__doPostBack()" onclick="return confirm()" />
    
        5
  •  1
  •   moza    16 年前

    您正在处理PageLoad事件吗?如果是,请尝试以下方法

    if (!isPostBack)
    {
        //do something
    }
    else if (Request.Form["__EVENTTARGET"].ToLower().IndexOf("myevent") >= 0)
    {
        //call appropriate function.
    }
    

    检查您是否以这种方式收到呼叫,如果是,则可能事件未连接,并且需要显式调用nedes。

        6
  •  1
  •   Jimmy    16 年前

    您对“Enabled=‘false’”有什么期望?

        7
  •  1
  •   seanb    16 年前

        8
  •  0
  •   Dan Williams    16 年前

    _doPostBack事件是.NET生成的自动生成的javascript。

    function __doPostBack(eventTarget, eventArgument) {
    
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    
            theForm.__EVENTTARGET.value = eventTarget;
    
            theForm.__EVENTARGUMENT.value = eventArgument;
    
            theForm.submit();
    
        }
    
    }
    

    *政府;95; 是下划线,似乎stackoverflow代码块格式有问题。

        9
  •  0
  •   Darren Kopp    16 年前

    现在,我想了想,正如我在上一次编辑中提到的,您希望在on client click属性中删除javascript:。不需要它,因为onclick事件就是javascript。试试看,看能不能用。

        10
  •  0
  •   Dan Williams    16 年前

    如果其他人也有同样的问题,希望这能有所帮助。

        11
  •  0
  •   pearcewg    16 年前

    在我正在开发的一个网络应用程序中,我遇到了完全相同的问题,我花了几个小时试图解决它。

    我随后注意到以下问题:

    ...

    我将命令切换到以下命令,它立即得到修复: ...

    不管怎样(我还是注意到了),IE都没有问题。

        12
  •  0
  •   DotNetDevster    14 年前

    我也有类似的问题。事实证明,Akamai之所以修改用户代理字符串,是因为应用了一个不需要的设置。

    这意味着一些.NET控件没有正确地呈现doPostBack代码。这个问题已经被写在博客上了 here .

        13
  •  0
  •   AlwaysLearning    14 年前

    我正在运行用户代理切换器,无意中选择了Googlebot 2.1代理。

    在Reporting Services 2008中,它导致报表实际呈现的iFrame大约为300x200 px,而在Reporting Services 2008中,R2在错误控制台中抛出“\uu doPostBack undefined”错误。

    切换回默认用户代理修复了我的所有问题。

        14
  •  0
  •   SSZero    10 年前

    我对Firefox也有同样的问题。而不是使用 __doPostBack()

    例如,如果您的aspx页面中有此元素:

    <asp:Button runat="server" ID="btnMyPostback" OnClick="btnMyPostback_Click" CssClass="hide" ToolTip="Click here to submit this transaction."  />
    

    以及控制器中的回发事件:

     protected void btnMyPostback_Click(object sender, EventArgs e)
     {
         //do my postback stuff
     }
    

    $("#btnMyPostback").trigger("click");
    

    这将导致 Page_Load 如果您需要在上执行某些操作,则触发事件