【问题标题】:C# Xamarin Forms WebView EvaluateJavaScriptAsync execute javascriptC# Xamarin Forms WebView EvaluateJavaScriptAsync 执行 javascript
【发布时间】:2021-05-28 08:08:31
【问题描述】:

我正在尝试在我的WebView 上以编程方式执行javascript

这是我的代码:

private async void wbView1_Navigated(object sender, WebNavigatedEventArgs e)
{
    var result = await wbView1.EvaluateJavaScriptAsync("document.getElementByClassName('load_more_btn ib');");
    await Task.Delay(10);
}

这是页面中的 HTML:

<div class="center ib-parent">
     <a data-load="loadmore_category" href="#" class="load_more_btn ib">Load more</a>
</div>

这是一个“加载更多”按钮,它实际上加载了更多内容,让我可以访问我需要的信息类型。 现在很明显,EvaluateJavaScriptAsync 并没有在这里发挥作用。它不是单击按钮或执行加载更多内容所需的 javascript。 这是在WebView 中以编程方式“单击按钮”的正确方法吗?

【问题讨论】:

  • 如果是 HTML 的片段还是整个内容?您发布的 js 只是获取对元素的引用,它实际上并没有对它做任何事情。
  • 这确实是一个片段。那我应该怎么点击呢?
  • 我使用的是 Xamarin 表单而不是 android。 C#
  • 我发布的链接与安卓完全无关。这纯粹是一个 JS 问题

标签: javascript c# xamarin.forms webview getelementsbyclassname


【解决方案1】:

好的,多亏了 Jason,我设法找到了一些好的方向并让它发挥了作用。 Acutally,getElementsByClassName“返回所有子元素的类数组对象”。 由于它是一个数组,因此只需在单击之前选择数组的第一个元素即可。

var result = await wbView1.EvaluateJavaScriptAsync("document.getElementsByClassName('load_more_btn ib')[0].click();");

【讨论】:

    猜你喜欢
    • 2017-08-05
    • 2016-03-22
    • 2018-02-19
    • 2018-12-01
    • 2020-11-04
    • 1970-01-01
    • 2019-08-28
    • 2019-06-30
    • 2017-07-07
    相关资源
    最近更新 更多