Xterm.js 在 UWP WebView 中 - 以编程方式粘贴
Xterm.js in UWP WebView - paste programmatically
我正在开发基于 Xterm.js 的终端应用程序,该应用程序在 UWP WebView 中运行。一切正常,我可以使用 Ctrl+V 将任何文本粘贴到终端 - 它看起来是由 Xterm.js.
自动处理的
但我无法实现 "Paste" 菜单选项。我试过做类似的事情:
var value = await _webView.InvokeScriptAsync("eval", new []{"document.execCommand('paste')"});
(根据 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)但运气不好。什么都没有粘贴,调用 returns 空字符串。
关于如何从 UWP 应用程序菜单实施粘贴有什么想法吗?谢谢!
这不是 WebView 的问题,因为我在 xterm.js 的 github issue 找到了它。
可以考虑发布一个终端对象,比如附加到window对象上,这样就可以public从外部访问,然后使用_webView.InvokeScriptAsync("eval",new string[] { "window.term.paste("some string") "});
粘贴。
如果不想暴露终端对象,可以将paste方法包装成public函数,然后通过InvokeScriptAsync
.
调用
此致。
我正在开发基于 Xterm.js 的终端应用程序,该应用程序在 UWP WebView 中运行。一切正常,我可以使用 Ctrl+V 将任何文本粘贴到终端 - 它看起来是由 Xterm.js.
自动处理的但我无法实现 "Paste" 菜单选项。我试过做类似的事情:
var value = await _webView.InvokeScriptAsync("eval", new []{"document.execCommand('paste')"});
(根据 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)但运气不好。什么都没有粘贴,调用 returns 空字符串。
关于如何从 UWP 应用程序菜单实施粘贴有什么想法吗?谢谢!
这不是 WebView 的问题,因为我在 xterm.js 的 github issue 找到了它。
可以考虑发布一个终端对象,比如附加到window对象上,这样就可以public从外部访问,然后使用_webView.InvokeScriptAsync("eval",new string[] { "window.term.paste("some string") "});
粘贴。
如果不想暴露终端对象,可以将paste方法包装成public函数,然后通过InvokeScriptAsync
.
此致。