针对如何单击href中具有javascript:__doPostBack的链接?和单击什么标签可以选中当前表单这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展ASP.NETLinkButto
针对如何单击href中具有javascript:__ doPostBack的链接?和单击什么标签可以选中当前表单这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展ASP.NET LinkButton – 如何隐藏javascript_doPostBack?、ASP.NET UpdatePanel和Javascript __dopostback、asp.net – IE10 SCRIPT5009:’__doPostBack’未定义、href = javascript:jquery在FF中不起作用等相关知识,希望可以帮助到你。
本文目录一览:- 如何单击href中具有javascript:__ doPostBack的链接?(单击什么标签可以选中当前表单)
- ASP.NET LinkButton – 如何隐藏javascript_doPostBack?
- ASP.NET UpdatePanel和Javascript __dopostback
- asp.net – IE10 SCRIPT5009:’__doPostBack’未定义
- href = javascript:jquery在FF中不起作用
如何单击href中具有javascript:__ doPostBack的链接?(单击什么标签可以选中当前表单)
我正在使用模块“ mechanize”在python中编写屏幕抓取脚本,我想在href中具有javascript:__
doPostBack的链接上使用mechanize.click_link()方法。我相信我要解析的页面正在使用AJAX。
注意:机械是mechanize.Browser()
>>> next_link.__class__.__name__''Link''>>> next_linkLink(base_url=''http://www.citius.mj.pt/Portal/consultas/ConsultasDistribuicao.aspx'', url="javascript:__doPostBack(''ctl00$ContentPlaceHolder1$Pager1$lnkNext'','''')", text=''2'', tag=''a'', attrs=[(''id'', ''ctl00_ContentPlaceHolder1_Pager1_lnkNext''), (''title'', ''P\xc3\xa1gina seguinte: 2''), (''href'', "javascript:__doPostBack(''ctl00$ContentPlaceHolder1$Pager1$lnkNext'','''')")])>>> req = mech.click_link(next_link)>>> req<urllib2.Request instance at 0x025BEE40>>>> req.has_data()False
单击链接后,我想检索页面源。
答案1
小编典典我不使用机械化,但是我在网上做了很多使用python抓取自己的事情。
当我遇到诸如__doPostBack之类的javascript函数时,我将执行以下操作:
我访问Firefox中的网站,并使用HttpFox扩展名来查看单击相关链接时浏览器发送到Web服务器的POST请求的参数。
然后,我使用urllib.parse.urlencode在python中构建相同的请求,以构建所需的查询字符串和POST数据。
有时网站也使用cookie,因此我只使用python的http.cookiejar。
我已经成功地使用了这种技术几次。
ASP.NET LinkButton – 如何隐藏javascript_doPostBack?
<asp:LinkButton ID="cartLink" runat="server" Text="<b>Add to Cart</b>" ToolTip="Add to cart" CommandName="Add" CommandArgument='<%# Eval("ProductID") %>' />
查看来源:
<a id="ContentPlaceHolder1_productsList_cartLink_0" title="Add to cart" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$productsList$ctrl0$cartLink','')"> <b>Add to Cart</b></a>
当鼠标悬停在LinkButton上时,我不会丢失显示在浏览器底部的丑陋的“javascript_doPostBack(…)”链接状态消息.
有可能抑制这个吗?
更新05-11-2011:
我意识到这是默认行为,大多数时候我几乎没有注意到它.但是,当状态栏未显示时(默认情况下),这只是IE9中的问题.有人知道一个工作黑客来解决这个问题吗?
解决方法
<asp:LinkButton ID="cartLink" onMouSEOver="JavaScript:window.status='Yo,I'm the Javascript status text!'; return true" onMouSEOut="JavaScript:window.status=''; return true" runat="server" Text="<b>Add to Cart</b>" ToolTip="Add to cart" CommandName="Add" CommandArgument='<%# Eval("JOBProductIDName") %>' />
有关详细信息,请参阅this page.
ASP.NET UpdatePanel和Javascript __dopostback
function GetPolicyClick() {"__dopostback('UpdatePanel1','PostCall')";}
它是我需要它的1/2.它确实调用了部分回发,仅用于我的UpdatePanel.
现在是棘手的部分.我正在尝试(不知何故)在我的代码中引用__dopostback的第二个参数.这不起作用:
Private Sub UpdatePanel1_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles UpdatePanel1.Load Dim MyArg As String = Request("__EVENTARGUMENT") End Sub
我只是得到一个空字符串.
当然,我正在尝试做的可能是完全错误的(就像我尝试用ASP做的其他事情一样).我怀疑我的代码隐藏是从页面而不是面板中抓取事件参数,但我真的不知道,有什么想法吗?
解决方法
<input type="hidden" value="" id="__EVENTARGUMENT" name="__EVENTARGUMENT">
我建议你做这样的事情:
function setArgAndPostBack() { var arg = document.getElementById('__EVENTARGUMENT'); var arg = document.getElementById("__EVENTARGUMENT"); arg.value = 'something you want to put to server'; __doPostBack('UpdatePanel1',''); }
如果你使用jQuery它会更短:
function setArgAndPostBack() { $("#__EVENTARGUMENT").val('something you want to put to server'); __doPostBack('UpdatePanel1',''); }
如果它不起作用,我建议你在Update面板中放入一个隐藏字段:
<asp:UpdatePanel runat="server" ID="UpdatePanel1"> <ContentTemplate> <asp:HiddenField ID="hdnData" value="" runat="server" /> <!-- your content goes here --> </ContentTemplate> </asp:UpdatePanel>
然后像上面那样做同样的工作:
function setArgAndPostBack() { //Here hidden field is filled with your data $("#<%=hdnData.ClientID%>").val('something you want to put to server'); __doPostBack('UpdatePanel1',''); }
在第一个场景中,您可以在服务器端获得__EVENTARGUMENT:
String args = Request["__EVENTARGUMENT"];
如果第一种情况不起作用,您可以使用类似的东西:
String args = hdnData.Value;//This works even in Page_Load function.
asp.net – IE10 SCRIPT5009:’__doPostBack’未定义
它在IE9版本以及IE10兼容性模式下正常工作。但在IE10标准模式下,它给出了以下错误。
SCRIPT5009:’__doPostBack’未定义
[我创建了一个演示项目,有一个简单的asp:链接按钮,重定向到另一个页面。]
Tried the solution,but didn’t work for me
任何人都可以建议修复这个?
解决方法
Scott Hanselman在这里有一个非常详细的写这个问题:http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx
Scott提出了两种解决方案,第一种是推荐的解决方案:
1.机器范围修复
在服务器上下载并安装修补程序:
> .Net 4(http://support.microsoft.com/kb/2600088)
> .Net 2(http://support.microsoft.com/kb/2600100,http://support.microsoft.com/kb/2608565)
2.仅站点修复
从NuGet将App_browsersUpdate包安装到您的网站,以导入新的ie和Firefox浏览器定义。
> .Net 4(http://nuget.org/List/Packages/App_BrowsersUpdate)
> .Net 2(http://nuget.org/List/Packages/App_BrowsersUpdate.net20)
href = javascript:jquery在FF中不起作用
我有一个锚点,触发一个使用jquery的javascript:
<a href="javascript: $('#dash-main').load('billing.PHP')">text</a>
这个锚在Chrome中工作得很好,甚至在IE中,但是当我在FF中使用它时,浏览器会重定向到“http:// javascript:$(‘#dash-main’).load(‘billing.PHP’)” .
知道什么是错的吗?
解决方法:
使用onclick并避免问题:
<a href="#" onclick="$('#dash-main').load('billing.PHP');return false;">text</a>
我们今天的关于如何单击href中具有javascript:__ doPostBack的链接?和单击什么标签可以选中当前表单的分享就到这里,谢谢您的阅读,如果想了解更多关于ASP.NET LinkButton – 如何隐藏javascript_doPostBack?、ASP.NET UpdatePanel和Javascript __dopostback、asp.net – IE10 SCRIPT5009:’__doPostBack’未定义、href = javascript:jquery在FF中不起作用的相关信息,可以在本站进行搜索。
本文标签: