webview - 在 uwp webview InvokeScriptAsync 中调用列表框更改
问题描述
我在 uwp 中使用 webview 来与网页交互。除列表框外,一切正常。我打电话 :
await Webview.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].getElementsByTagName('select')[0].selectedIndex = 1;" });
选择是视觉上的变化,但没有调用网页的变化函数。表示没有效果!所以我尝试触发此调用并添加(更改侦听器位于选择框 0 上)
await Webview.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].dispatchEvent(new Event('change', { bubbles: true }));" });
await Webview.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].getElementsByTagName('select')[0].dispatchEvent(new Event('change', { bubbles: true }));" });
await Webview.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].change();" });
await Webview.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].getElementsByTagName('select')[0].change();" });
这 4 行都不起作用。所以我想知道 change() 调用是否可行?欢迎任何帮助。
解决方案
当我调用 jquery change 方法时,它会触发网页上的 change 事件。
我制作了一个简单的代码示例进行测试,它在我这边运行良好。
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#select").on('change', function () {
$("#ptext").text(this.value);
});
});
</script>
</head>
<body>
<select id="select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<p id="ptext">Write something</p>
</body>
</html>
<Grid>
<WebView x:Name="webview" Source="ms-appx-web:///HTMLPage1.html"></WebView>
<Button Content="call js" Click="Button_Click"></Button>
</Grid>
private async void Button_Click(object sender, RoutedEventArgs e)
{
await webview.InvokeScriptAsync("eval", new string[] { "document.getElementById('select').selectedIndex=2;$('#select').change();" });
}
推荐阅读
- python-3.x - DataFrame:我如何按 Z 分组并计算 Y 范围内的平均 X
- sql - 查找用于将财政季度结果与上一年进行比较的查询
- css - -webkit-transform:rotateY 在 Mac OS 上失败
- reactjs - 由于数组反应原生而无法获取 api
- python - 使用 scikit-learn 管道与手动操作时的不同分数
- python - 为 Keras 重塑一维 Numpy 数组
- python-3.x - 如何使用 BeautifulSoup 访问元素属性?
- javascript - Javascript通过布尔属性从Neo4j过滤器中获取数据
- python - python3.7版本的aws-sam-cli包的pip安装
- c# - 如何在外部应用程序上呈现内部 PowerBI 报表服务器报表?