__dopostback无法在javascript函数中使用

时间:2011-12-01 05:42:33

标签: javascript asp.net

在关闭浏览器事件时在javascript中调用__dopostback函数,但它无法在Chrome中运行。

同样的功能在IE中工作

任何人都可以给我解决方案。

<script type="text/javascript" language="javascript"> 
function doUnload() 
{ 
 var btnlogout = document.getElementById("ctl00_lbtn_Logout"); alert(btnlogout);   
 __doPostBack(btnlogout, ''); 
} 
</script>

5 个答案:

答案 0 :(得分:0)

我认为你应该将btnlogout id作为字符串传递(不确定你是否必须删除ctl00因为它是一个子控件)因为函数需要文本而且它可能在服务器上的请求..

看看这篇文章: http://wiki.asp.net/page.aspx/1082/dopostback-function/

答案 1 :(得分:0)

只是做:

btnlogout.click(); 

因为你已经有了对按钮的引用,顺便说一下,不要按照你的方式获取元素;这样做:

var btnlogout = document.getElementById("<%=btn_Logout.ClientID%>"); 

答案 2 :(得分:0)

请尝试以getElementById这种方式

var btnlogout = document.getElementById('<%= lbtn_Logout.ClientID %>'); 
alert(btnlogout)

再次测试,它会工作..

答案 3 :(得分:0)

dopostback(clientID,args)的第一个参数必须是控件的clientid,它是一个字符串,而不是对象(当然字符串是对象).. 在你的情况下,我假设是'ctl00_lbtn_Logout',传递正确的参数如:

__doPostBack('<%= downloadUp.ClientID %>', current_index);

如果您的控件是服务器端控件,请将“downloadUp”更改为您控件的ID,否则您只需传递ID

答案 4 :(得分:0)

在执行__doPostBack时,您需要通过javascript传递控件的UniqueID。 ClientID不起作用。