将复制和粘贴功能添加到 Web 应用程序的自定义菜单

2024-07-03

我们正在开发一个包含文本编辑器的 Web 应用程序。它是用 HTML5 + Javascript 编写的。

我们成功地将自定义菜单添加到我们的网络应用程序中,但我们尚未成功添加 Google 文档中的复制和粘贴功能。据我们了解,这可以使用可以访问操作系统剪贴板的闪存来实现。然而,我们希望避免该技术并使用替代方案 - 我认为 Google 也不使用 Flash。

有人能给我们指出一种有效的替代方法吗?

Thanks.


W3C 有一个工作草案剪贴板API http://www.w3.org/TR/clipboard-apis/#fire-a-clipboard-event. 它还没有得到很大的支持 http://caniuse.com/#search=clipboard但将来可能会有用。您必须仔细查看不支持的内容。 W3C 规范中的一个示例看起来非常简单:

var pasteEvent = new ClipboardEvent('paste', { bubbles: true, cancelable: true, dataType: 'text/plain', data: 'My string' } );
document.dispatchEvent(pasteEvent);

An 文章来自MDN https://developer.mozilla.org/en-US/docs/Using_the_Clipboard似乎采取了不同的方法,使用XPCOM组件 https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components,但如果我没记错的话,这只适用于 FireFox。

然而,meewoK 链接到的答案可能最能说明问题。如果它是文本字段,您可以使用标准键盘命令(可能是人们复制/粘贴的最常见方式?)或操作系统的右键单击菜单(除非您在应用程序中覆盖它)。当您尝试通过“编辑”菜单访问剪贴板命令时,Google 文档当前执行的操作是显示一个模式,告诉您使用键盘命令:

就我个人而言,我会在关注剪贴板 API 的同时实现类似的东西。然后,当浏览器开始实现它时,您可以检测它的存在并覆盖该模式 http://en.wikipedia.org/wiki/Progressive_enhancement.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将复制和粘贴功能添加到 Web 应用程序的自定义菜单 的相关文章

  • GWT - 找不到入口点类

    我最近开始开发另一个 GWT 模块 因此 我创建了一个包 其中包含所有新类和一个实现新入口点的特定类 我将 gwt xml 修改为新的入口点 当我编译时 出现以下错误 GWT Compiling client side code WARNI
  • 用随机图像填充表格

    首先 我的编码经验包括修改简单的脚本以在我的页面上工作 其次 我搜索并发现了几个类似的问题 但无法完全解决它们 我需要一些帮助来使用大约 40 张图像数组中的随机图像填充 3x3 表 我目前有一个使用 backgroundImage 属性的
  • jquery中的ontouchstart和ontouchend?

    我目前正在对要更改触摸类的每个元素使用以下内容 ontouchstart this addClass select ontouchend this removeClass select 我想知道是否有这样的事情 element touchs
  • 使用 javascript 分割图像

    如何使用 javascript 获取单个图像的一部分并将其存储在数组中 然后在 html5 画布上随机显示 您可以使用drawImage 方法的剪切参数并将剪切的图像绘制到动态创建的画布上 一个例子可以是 function getClipp
  • 使用 GruntJs 缩小脚本

    我有几个 js 文件 我似乎可以让 GruntJs 正确地连接 缩小它们 如果我单独做每一个 它们就会工作得很好 如果我单独组合然后尝试缩小组合文件 它也不起作用 Here is the error 有想法该怎么解决这个吗 或者也许是什么原
  • 如何在javascript中使用MD5传输密码

    我弹出一个 jquery 对话框模式框用于登录我的网站 当用户单击登录时 它会向 login php 文件发出一个 post 请求 如下所示 post includes login php user username pass passwo
  • 在 firefox-extension 的新选项卡中打开链接

    我开发了一个网络应用程序来将其用作 Firefox 扩展 在 Firefox 中 我将它包含在 iframe 中 如下所示 现在我想在我的应用程序中有一些传出链接 如果我只使用普通的链接标记 例如 a href http mywebapp
  • 使用 SVG 的部分边框/描边

    我正在使用 svg d3 创建由 矩形 元素组成的图表 为每个矩形添加部分边框 描边 仅在矩形顶部 的最佳方法是什么 Thanks 我不认为 SVG 支持仅描边矩形或路径的一部分 描边不像 CSS 边框 您还有其他一些选择 所有这些都需要一
  • angularjs表单重置错误

    我正在尝试使用 angularjs 制作一个带有验证的表单 到目前为止我做得很好 但是 当我提交重置按钮时 除了从验证部分收到的错误消息之外 所有字段都会重置 当我重置表单时 如何删除所有字段和错误消息 这就是我按下重置按钮时的情况 这是我
  • 使用jsoup从两个标签之间提取未识别的html内容?正则表达式?

    我想获取两者之间所有链接的名称h2那里有标签 h2 span class mw headline People span span class mw editsection span class mw editsection bracket
  • 为什么需要@babel-core

    我是 Babel 和 JS 的新手 我想知道何时以及为何使用 babel core 包而不是 babel cli From 巴贝尔官方文档 https babeljs io docs en Babel是一个工具链 主要用于转换ECMAScr
  • 有没有可靠的方法在 IE11 中使用 ctx.drawImage() ?

    我有一个脚本 可以根据数据查询创建动态 SVG 图形 我需要将它们粘贴到 PDF 中 为此我使用 jsPDF 不幸的是 jsPDF 自己的 addSVG 似乎不起作用 所以我花了一些时间尝试使用画布将 SVG 转换为 PNG 我似乎可以将
  • 两个选择框重叠

    我有两个选择框HTML 一个在另一个之下 第一个选择框正常 第二个选择框默认打开 意味着无需单击即可显示选项 现在当我点击第一个select box它的内容移动到另一个的后面select box HTML
  • 删除CKEditor图像插件中的htmlPreview

    我在 CKEditor 的图像插件中隐藏预览元素时遇到问题 我需要一个非常简单的图像对话框 其中只有图像源的输入字段和带有图像上传按钮的表单 因此 我使用这些自定义配置设置删除了不必要的元素 CKEDITOR on dialogDefini
  • Chart.js 忽略画布高度和宽度

    继Chart js 文档 http www chartjs org docs getting started creating a chart我正在尝试绘制一个小图表
  • 获取此 contenteditable 元素中的当前行和行索引?

    我有一个这样的元素 span line 1 line 2 line 3 line 4 line 5 span 假设用户正在编辑 第 4 行 如何获取该 contenteditable 元素中的当前行和行索引 在插入符号位置 这是使用选择属性
  • Twitter 引导工具提示说明不起作用?

    我注意到我的 Twitter 引导工具提示不尊重data position 所以 我前往Twitter Bootstrap 工具提示演示 http twitter github com bootstrap javascript html t
  • 如何获取对象类型

    在我的 Google Apps 脚本应用程序中 我看到以下错误 脚本已完成 但返回值不是受支持的返回类型 如何找出我返回的值的类型 我试过 typeof obj 但我得到的只是它是一个对象 仅当缓存为空并且从电子表格加载数据时才会发生此错误
  • 使页脚正确粘贴到页面底部[重复]

    这个问题在这里已经有答案了 我试图让我的页脚 只是一个带有一行文本的div 位于屏幕底部 如果内容没有一直到达底部 或者位于内容的底部 如果内容需要滚动条 如果内容不需要滚动条 它可以完美工作 但是当内容太长时 页脚仍然位于同一位置 位于内
  • 街景中标记上的 InfoWindows

    根据 Google 文档 当您在地图上创建标记时 市场也会 复制 到地图的街景版本上 但是 onClick 事件绑定不会被复制 或者至少看起来不会被复制 因此我无法在 StreetView 中打开标记上的 InfoWindow 理想情况下

随机推荐

  • 如何让“IE 6 条件注释”发挥作用?

    我有这个标记 效果很好 div class header headerNotIE6 我现在正在尝试放置一个特定于 ie6 的解决方法 因此我尝试仅在浏览器不是 IE 6 的情况下使用此 div 因此 如果它是 IE7 8 firefox 和
  • 随机播放与排列 numpy

    有什么区别numpy random shuffle x and numpy random permutation x 我已阅读文档页面 但当我只想随机洗牌数组的元素时 我无法理解两者之间是否有任何区别 更准确地说 假设我有一个数组x 1 4
  • Android 在 onTextChanged 中调用 setText

    为了防止无限循环 我做了这样丑陋的事情 Override protected void onTextChanged CharSequence text int start int lengthBefore int lengthAfter S
  • Angular 的“controllerAs”在routeProvider 中不起作用

    我正在尝试使用controllerAs财产在 routeProvider路线没有任何成功 这是示例代码 var app angular module app ngRoute app config routeProvider location
  • 在 Tkinter 文本小部件被文本小部件绑定后,如何在 Tkinter 文本小部件中绑定自身事件?

    我想在之后绑定自身事件Text小部件类绑定 以便在调用我的绑定函数时更改小部件的文本 以我的绑定为例self text bind
  • 有什么办法可以覆盖Python的内置类吗?

    我正在尝试改变 python 的行为int类 但我不确定是否可以使用纯Python来完成 这是我到目前为止所尝试的 import builtins class int new builtins int def eq self other r
  • Webkit 背面可见性不起作用

    我正在构建一个简单的示例来使用以下方法翻转卡片 webkit transform rotateY财产 前几天还好好的 突然就不行了 该效果仍然有效 但是当我将鼠标悬停在卡片上时 正面应该消失以使背面可见 为此我正在使用 webkit bac
  • FloatToStr / DateToStr 的线程安全性

    我刚刚在文档中发现FloatToStr and DateToStr它们的单参数重载不是线程安全的 原因是它们访问存储在全局变量中的本地化信息 我的问题是 如果我不在运行时更改格式设置 这有任何实际意义吗 据我了解 只要每个人都只读取格式设置
  • 显示 100% 带边距的 div 宽度

    我想显示一个可扩展的div width 100 有边距 page background red float left width 100 height 300px margin background green float left wid
  • Protobuf-net跳过特定字段的反序列化

    我已经序列化了这个类 ProtoContract public class TestClass ProtoMember 1 public int hugeArray ProtoMember 2 public int x ProtoMembe
  • 如何正确关闭Landscape VideoView Activity?

    在我的应用程序中 我有一个以横向模式播放 http 直播流视频的活动 我的 AndroidManifest xml
  • PHPExcel如何对从mysql表创建的整个文档应用对齐

    I used PHPExcel库根据 mysql 查询创建的表生成 excel 文件 我使用来自不同查询的各个数据创建了多个选项卡 我需要将所有选项卡 工作表 中的所有单元格中的数据对齐到中心 这是我的代码 mysql xls new My
  • 在Python中像\\uXXXX这样的字符串的转换[重复]

    这个问题在这里已经有答案了 我从第三方服务收到这样的字符串 gt gt gt s u0e4f u032f u0361 u0e4f 我知道这个字符串实际上包含单个反斜杠 小写 u 等的序列 如何转换该字符串 以便 u0e4f 被替换为 u0e
  • 缓存抖动,一般有助于理解

    我试图了解缓存抖动 以下文本正确吗 以下面的代码为例 long max 1024 1024 long a max b max c max d max e max for i 1 i lt max i a i b i c i d i e i
  • 设置 UITabBar 中选定选项卡的色调颜色

    在 Xcode 5 Dev Preview 2 中 我能够执行以下命令 UITabBar appearance setTintColor UIColor whiteColor 所选图像和文本的颜色 白色 在 Xcode 5 Dev Prev
  • Mongodb聚合匹配查询,优先全匹配

    我正在尝试对字段执行 mongodb 正则表达式查询 我希望查询在找到一个匹配项时优先考虑完整匹配项 然后再优先考虑部分匹配项 例如 如果我有一个充满以下条目的数据库 username patrick username robert use
  • 使用WebClient时如何绕过系统代理

    我在窗口中使用代理 如何在从某些网站上传或下载时使用 Web 客户端绕过代理服务器设置 即使我在控制面板中使用代理服务器 你可以用这个 WebClient webclient new WebClient webclient Proxy nu
  • 特定键盘事件

    我正在使用 Vue 并且在 div 中有 Quill 编辑器 这就是为什么我使用已弃用的DOMSubtreeModified 我想触发一个事件来发送 API 请求以将编辑器的内容保存到数据库中 现在 下面是我所拥有的 但当我删除字符时它不会
  • 在 UIBlurEffect 上绘制洞

    Xcode 8 0 斯威夫特 2 3我有一个内部扩展来创建效果很好的模糊层 internal extension UIView Add and display on current view a blur effect internal f
  • 将复制和粘贴功能添加到 Web 应用程序的自定义菜单

    我们正在开发一个包含文本编辑器的 Web 应用程序 它是用 HTML5 Javascript 编写的 我们成功地将自定义菜单添加到我们的网络应用程序中 但我们尚未成功添加 Google 文档中的复制和粘贴功能 据我们了解 这可以使用可以访问