当前位置: 首页 > 编程语言 > C#

如何在通用Windows应用程序中调用WebView中的javascript函数分享

时间:2023-04-10 19:58:50 C#

如何在通用Windows应用程序中调用WebView中的javascript函数谁能帮我处理代码,我在通用应用程序中使用Web视图控件加载了一个网站。我想从同一个网站读取一些控件值。我的标签控件ID在网站上是“lblDestination”。我在像MAinPage.xamlMAinPage.xaml.csBrowser.InvokeScript("eval",newstring[]{"document.getElementById('lblDestination')"}).ToString()这样的通用应用程序中访问它这是这是读取浏览器控件值的正确方法?我正在使用模拟器来测试这个应用程序,那么模拟器是否会产生问题?我不确定何时何地使用InvokeScript和JavaScripteval函数将内容注入网页。但通常我们可以使用WebView.DOMContentLoaded事件。这个事件发生在WebView解析完当前HTML内容的时候,所以通过这个事件我们可以保证HTML内容已经准备好了。如果我们想在Windows10通用应用程序的WebView内容中调用JavaScript,我们最好使用WebView.InvokeScriptAsync方法,因为[在Windows8.1之后,InvokeScript可能会更改或不适用于发布版本。相反,请使用InvokeScriptAsync。]最后但同样重要的是,请注意InvokeScriptAsync方法只能返回脚本调用的字符串结果。调用的脚本只能返回字符串值。因此,如果JavaScript的返回值不是字符串,WebView.InvokeScriptAsync方法的返回值将是一个空字符串。如果您使用varvalue=awaitBrowser.InvokeScriptAsync("eval",newstring[]{"document.getElementById('lblDestination')"});当document.getElementById('lblDestination')返回一个Element时,该值将为空字符串。因此,要读取一些控件值,您可以尝试以下代码:varinnerText=awaitBrowser.InvokeScriptAsync("eval",newstring[]{"document.getElementById('lblDestination').innerText"});如果你想要获取的值不是字符串,你可能需要先在JavaScript中将其转换为字符串。例如:以上就是《C#学习教程:如何在通用Windows应用程序中调用WebView中的javascript函数》的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——varchildElementCount=awaitBrowser.InvokeScriptAsync("eval",newstring[]{"document.getElementById('lblDestination').childElementCount.toString()"});本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理会员删除。如需转载请注明出处: