C# 和 JS 函数的链接

标签 c# javascript html xpath windows-phone-8

我想为 WP8 创建一个显示网页内容的应用程序。我还没有编写代码,但我知道我可以使用 xpath 获取页面内容。我的问题是我想要的内容不在一个页面中。我必须按“下一步”按钮才能转到下一页。该按钮的代码是这样的。

<td class="pager-next" style="padding:0;margin:0;">
       <a id="ctl00_ContentPlaceHolder1_LinkButton2" class="buttondiego buttondiego_small buttondiego_arrow" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton2','')"></a>
</td>

这是标题中的 JS 函数:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

是否可以使用我的代码转到下一页?我该怎么办?

最佳答案

您必须:

  • 深入分析他们的 JavaScript,并对获取特定页面所需的 POST 值进行一些逆向工程。您可以使用 Firebug 或 Chrome 开发者工具 WebView 查看发送了哪些请求。网址肯定是

    <http://www.starcomics.com/UsciteMensili.aspx?AspxAutoDetectCookieSupport=1
    

    但只需发布受监控的“看起来很有趣”的字段

    __ASYNCPOST:true
    __EVENTTARGET=ctl00$ContentPlaceHolder1$DataPager2$ctl00$lnkNextPage
    

    还不够。

  • 或者,您可以使用一些实际执行 JavaScript 的 headless 浏览器实现。它们的设置会更加复杂,性能也会降低,但您不必再关心加载页面背后的逻辑。我认为最常用的 headless 浏览器是 PhantomJS ,但我不知道是否以及如何在 Windows Phone 和 C# 中使用它,您可能希望在自己的服务器上设置它并代理数据。

关于C# 和 JS 函数的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052488/

相关文章:

javascript - 使用javascript更改div颜色

javascript - Mocha/chai 断言失败,但没有差异

jquery - 当其他两个 li 包含 sibling 时,我如何使用 jQuery 在它们之间插入一个 li?

html - CSS 字体大小在移动设备上无法正常工作

c# - C#如何打开新窗口

c# - 为 StyleCop 拼写检查指定 CustomDictionary 文件的路径

c# - 如何将 DLL 从 .Net Framework 迁移到 .Net Standard?

c# - 如何对我的对象是否真的可序列化进行单元测试?

javascript - Highcharts/HighStock - 如何正确解析 JSON

html - 媒体查询的两个下限意味着什么?