首页 > 解决方案 > UWP WebView 中的 Xterm.js - 以编程方式粘贴

问题描述

我正在开发一个基于 Xterm.js 的终端应用程序,它在 UWP WebView 中运行。一切正常,我可以使用 Ctrl+V 将任何文本粘贴到终端 - 看起来它是由 Xterm.js 自动处理的。

但我无法实现“粘贴”菜单选项。我试图做类似的事情:

var value = await _webView.InvokeScriptAsync("eval", new []{"document.execCommand('paste')"});

(根据https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)但没有运气。没有粘贴任何内容,并且调用返回空字符串。

任何想法如何从 UWP 应用程序菜单实现粘贴?谢谢!

标签: uwpxtermjs

解决方案


这不是 WebView 的问题,因为我是从xterm.js的github 问题中找到的。

可以考虑发布一个Terminal对象,比如把它附加到window对象上,这样就可以从外部公开访问,然后使用_webView.InvokeScriptAsync("eval",new string[] { "window.term.paste("some string") "});粘贴。

如果不想暴露终端对象,可以将 paste 方法封装为公共函数,然后通过InvokeScriptAsync.

最好的祝福。


推荐阅读