【发布时间】:2019-04-24 08:13:57
【问题描述】:
我在 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() 调用是否可行? 欢迎任何帮助。
【问题讨论】:
-
你说的“网页的改变功能”是什么意思?您能否提供包含 javascript 代码的 HTML 页面?
-
Change 是一个由外部 js 文件保存的 jquery 事件监听函数(e)。调用 click、keypress、keyup 有效,但不更改事件。列表框位于可以更改的网页上。所以我可以给出一个 url,但是当你看到它时,可能列表框还没有出现。
标签: webview uwp windows-10