GVKun编程网logo

如何单击href中具有javascript:__ doPostBack的链接?(单击什么标签可以选中当前表单)

12

针对如何单击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的链接?(单击什么标签可以选中当前表单)

如何单击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.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(&#39;ctl00$ContentPlaceHolder1$productsList$ctrl0$cartLink&#39;,&#39;&#39;)">
        <b>Add to Cart</b></a>

当鼠标悬停在LinkBut​​ton上时,我不会丢失显示在浏览器底部的丑陋的“javascript_doPostBack(…)”链接状态消息.

有可能抑制这个吗?

更新05-11-2011:

我意识到这是默认行为,大多数时候我几乎没有注意到它.但是,当状态栏未显示时(默认情况下),这只是IE9中的问题.有人知道一个工作黑客来解决这个问题吗?

解决方法

如果您指的是显示在大多数浏览器窗口左下方的Javascript状态消息,请尝试设置onMouSEOver值.

<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.

@H_301_35@

ASP.NET UpdatePanel和Javascript __dopostback

ASP.NET UpdatePanel和Javascript __dopostback

我正在调用 javascript的部分回发,如下所示:
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做的其他事情一样).我怀疑我的代码隐藏是从页面而不是面板中抓取事件参数,但我真的不知道,有什么想法吗?

解决方法

如果你想在_EVENTARGUMENT中加入一些值,你应该在使用_doPostBack(‘UpdatePanel1’,”)发送表单之前用javascript执行此操作,因为__EVENTTARGET是隐藏字段,在你的html文档中它看起来像这样:
<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’未定义

asp.net – IE10 SCRIPT5009:’__doPostBack’未定义

我面临一个问题在IE10与ASP.NET控件,需要JavaScript回发[喜欢,链接按钮]。

它在IE9版本以及IE10兼容性模式下正常工作。但在IE10标准模式下,它给出了以下错误。
SCRIPT5009:’__doPostBack’未定义

[我创建了一个演示项目,有一个简单的asp:链接按钮,重定向到另一个页面。]

Tried the solution,but didn’t work for me

任何人都可以建议修复这个?

解决方法

在.NET 2.0和.NET 4附带的浏览器定义文件中显然存在一个错误。定义文件不支持IE10作为浏览器版本,因此默认为不支持JavaScript的默认定义。

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中不起作用

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中不起作用的相关信息,可以在本站进行搜索。

本文标签: