__doPostBack在Firefox中不起作用

__doPostBack在firefox 3中无效(未检查2)。 在IE 6和7中一切都运行良好,它甚至可以在Chrome中运行?

这是一个简单的asp:带有OnClick事件的LinkBut​​ton

 

javascript确认正在解雇,所以我知道javascript正在运行,它特别是__doPostBack事件。 页面上还有很多内容,只是不知道是否可以发布整个页面。

我启用了页面加载事件的控件。

有任何想法吗?


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

似乎它与嵌套ajax工具包UpdatePanel有关。 当我移除顶层面板时,它被修复了。

希望如果其他人有同样的问题,这会有所帮助。 我仍然不知道具体导致了什么问题,但这对我来说是解决方案。

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

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

要将用户代理字符串类型about:config重置为位置栏,然后按Enter键。 这会显示一个首选项列表。 在filter框中输入general.useragent,这应该显示一些首选项(可能是其中的4个)。 如果任何设置了状态用户,请右键单击首选项并选择“重置”

我在Firefox中遇到了同样的问题(__doPostBack无法正常工作) – 造成了一小时的浪费时间。 问题原来是HTML。 如果您使用这样的HTML:

  

其中“doSomethingThenPostBack”只是一个调用__doPostBack的JavaScript方法,表单不会在Firefox中发布。 它将在IE和Chrome中发布PostBack。 要解决此问题,请确保您的HTML是:

  

关键是type属性。 它必须在Firefox中“ 提交 ”才能使用__doPostBack。 其他浏览器似乎并不关心。 希望这可以帮助其他人解决这个问题。

这可能看起来很元素,但是你确认你的firefox设置没有设置为干扰回发吗? 有时我会遇到类似的问题,因为我在调试会话中遇到了奇怪的浏览器配置。

是因为你做退货确认吗? 似乎return语句应该阻止其余代码触发。 我认为if语句会起作用

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

你可以在链接的OnClick上发布所有js代码吗?

编辑 :啊哈,忘了链接按钮发出这样的代码

  

你在处理PageLoad事件吗? 如果是这样,请尝试以下操作

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

检查您是否以这种方式接听电话,如果是这样,那么事件可能没有连线并且需要明确调用nedes。

您对“Enabled =’false’”的期望是什么?

我在某些网络表单上遇到过firebug的问题,与网络分析器有关的事情可能与回发有关。

无论有没有OnClientClick事件,它仍然无法正常工作。

_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代码块格式的问题。

现在我想起来了,正如我上次编辑中所提到的,你想要删除javascript:在客户端点击属性中。 它不是必需的,因为onclick事件是javascript原样。 试试看,看看是否有效。

似乎它与嵌套ajax工具包UpdatePanel有关。 当我移除顶层面板时,它被修复了。

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

我在我正在处理的网络应用程序中遇到了同样的问题,我尝试解决它几个小时。

最后,我做了一个新的网络表格,在其中删除了一个链接按钮,它工作得很好!

然后我注意到以下问题:

我将订单切换到以下,并立即修复:…

IE无论如何都没有问题(无论如何我注意到了)。

我有一个类似的问题。 事实certificate,Akamai正在修改用户代理字符串,因为正在应用不需要的设置。

这意味着某些.NET控件无法正确呈现__doPostBack代码。 此问题已在此处发布 。

@Terrapin:你完全正确(对我来说,无论如何)。

我正在运行User Agent Switcher并且无意中选择了Googlebot 2.1代理。

在Reporting Services 2008中,导致实际呈现报表的iframe大约为300×200像素,而在Reporting Services 2008 R2中,错误控制台中出现“__doPostBack未定义”错误。

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

我遇到了与Firefox相同的问题。 您可以使用jQuery .trigger()方法来触发对您的回发事件注册为单击操作的元素的单击操作,而不是使用__doPostBack()吗?

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

  

您的控制器中的回发事件:

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

您可以通过调用以下方式进行回发:

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

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