uwp - 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 应用程序菜单实现粘贴?谢谢!
解决方案
这不是 WebView 的问题,因为我是从xterm.js的github 问题中找到的。
可以考虑发布一个Terminal对象,比如把它附加到window对象上,这样就可以从外部公开访问,然后使用_webView.InvokeScriptAsync("eval",new string[] { "window.term.paste("some string") "});
粘贴。
如果不想暴露终端对象,可以将 paste 方法封装为公共函数,然后通过InvokeScriptAsync
.
最好的祝福。
推荐阅读
- swift - 如何从嵌入视图进入标签栏?
- excel - 复制A列,每隔一列插入,然后排序
- pdf - 如何使用 PHPSpreadsheet 修复图像未在 PDF 上显示?
- javascript - 填写pdf文件后如何展平pdf表单并在React Native中保存为不可编辑?
- python - 如何删除具有可变长度的字符串的一部分
- excel - 根据填充的行使用 Excel VBA 宏在 Worddocument 中创建动态表
- python - 如何创建独立对象
- regex - 基于正则表达式映射替换 Spark Dataframe 中的字符串及其替换 + SCALA
- python - ShapeFile 中的“pandas._libs.tslibs.timestamps.Timestamp”
- laravel - Laravel Cashier 是否处理比赛条件?