Javascript UWP Webview将网页中的链接获取到数组中
我只能在UWP赢10之前找到过时的答案。我知道怎么用老办法做,但这给我带来了麻烦 到目前为止,我已经做了如下工作,请注意,问题似乎在于VB中,它没有像我被告知的那样按标记名执行元素命令。不过,将其更改为内部HTML,它将用整个页面填充HTML变量。所以我似乎无法获得链接本身 感谢您的帮助!谢谢 XAML 只能返回脚本调用的字符串结果 返回值 当此方法返回时,脚本调用的字符串结果 因此,如果希望从网页中获取链接,则需要将所有链接放入字符串中才能返回。对于C#示例: 这里我用Javascript UWP Webview将网页中的链接获取到数组中,javascript,vb.net,xaml,webview,uwp,Javascript,Vb.net,Xaml,Webview,Uwp,我只能在UWP赢10之前找到过时的答案。我知道怎么用老办法做,但这给我带来了麻烦 到目前为止,我已经做了如下工作,请注意,问题似乎在于VB中,它没有像我被告知的那样按标记名执行元素命令。不过,将其更改为内部HTML,它将用整个页面填充HTML变量。所以我似乎无法获得链接本身 感谢您的帮助!谢谢 XAML 只能返回脚本调用的字符串结果 返回值 当此方法返回时,脚本调用的字符串结果 因此,如果希望从网页中获取链接,则需要将所有链接放入字符串中才能返回。对于C#示例: 这里我用 [].map.call
[].map.call(document.getElementsByTagName('a'), function(node){ return node.href; }).join('||');
将所有链接放入一个字符串中。您可能需要更改此JavaScript代码以实现自己的代码
在此之后,可以将字符串拆分为如下数组:
var links = html.Split(new[] { "||" }, StringSplitOptions.RemoveEmptyEntries);
虽然我使用了C#作为例子,但是VB代码应该是类似的
string html = await webview.InvokeScriptAsync("eval", new string[] { "[].map.call(document.getElementsByTagName('a'), function(node){ return node.href; }).join('||');" });
System.Diagnostics.Debug.WriteLine(html);
[].map.call(document.getElementsByTagName('a'), function(node){ return node.href; }).join('||');
var links = html.Split(new[] { "||" }, StringSplitOptions.RemoveEmptyEntries);