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()调用?欢迎任何帮助。

劳伦特·埃明

没关系。我重试了许多解决方案,这一次成功了!

await webView1.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].getElementsByTagName('select')[0].selectedIndex=1;" });
        await webView1.InvokeScriptAsync("eval", new string[] { "document.getElementsByClassName('select-box')[0].getElementsByTagName('select')[0].dispatchEvent(new Event('change', { bubbles: true }));" });

上次没有发现我做错了,我很确定我之前已经测试过。再次感谢Xavier Xie

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章