问题标签 [clipboard-interaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1513 浏览

firefox - 将当前网页的 HTML 链接复制到剪贴板的 Firefox 扩展,而不仅仅是 URL

情况

我需要自动将 HTML 链接复制到在当前 Firefox 选项卡中查看的当前页面到其他所见即所得编辑器中。这与仅复制 URL 的纯文本不同,也与仅粘贴网页标题的纯文本相同。这也不同于导航到具有指向感兴趣页面的 HTML 链接的其他网页,用鼠标光标选择文本,然后键入 CTRL-C 将其复制到当前操作系统剪贴板(Linux和 Windows,不应该有任何区别)。只有剪贴板的更新是自动化的;从剪贴板粘贴到目标应用程序将手动完成。

所需的用例如下

  1. 用户从 Firefox 中浏览到任何网页。
  2. 用户键入一些与标准 Firefox 内置键绑定不冲突的用户指定键序列。
  3. 然后,Firefox 将只执行Copy Link Bookmarklet的部分 功能:而不是打开一个新的单独窗口/选项卡并为链接构建和呈现 HTML,然后要求用户在选择链接并将其复制到剪贴板时浪费动作,然后扩展程序将格式化 HTML 本身并将其直接复制到剪贴板中。
  4. 然后,用户选择下面描述的任何目标并键入 CTRL-V 以粘贴格式化的文本。
  5. 然后用户将链接视为该目标区域中的链接,并且 看不到任何文字http://...

例如,如果浏览的网页是http://www.google.com,并且用户单击了用户定义的键序列,并且如果用户将其粘贴到某个 Google 文档中,那么他们在该文档中看到的 不是 http://www.google.com他们也不会看到Google,而是会看到您在 Web 浏览器中的 StackOverflow 中阅读此内容时会看到的内容:Google

现在,有 Firefox 扩展程序和书签工具接近了,但它们都没有减少鼠标移动和/或按键开销,这是这种频繁出现的用例中最浪费时间的方面。我对现有扩展的搜索结果没有完全满足我的需求(请参阅下面的研究部分)。因此,我认为我可能需要推出自己的扩展(或修改现有扩展),除非有人可以将我指向提供此功能的现有扩展。

我想到的扩展应该可以在 Linux 或任何版本的 Windows 上运行的 Firefox 版本 11 或更高版本中运行。只需要 Firefox 和合适的 Firefox 扩展,不需要任何其他特殊软件。

粘贴的目标应该是:

  1. GMail 撰写文本区域
  2. 谷歌文档
  3. 微软 Word 文档
  4. Microsoft Outlook 撰写文本区域。
  5. 任何其他所见即所得编辑器,例如 Blogger 帖子编辑器。
  6. 记事本(在这种情况下,仅粘贴网页标题而不是 URL,或者将网页标题和 URL 作为单独的纯文本粘贴;无论哪种方式)。

关于用户指定的键绑定:如果已经有一个扩展完成了上述操作,但没有提供将键绑定绑定到它的能力,那么我希望能够使用keyconfig 扩展扩展来处理该方面。实际上,这甚至可能更可取。我还不知道。

研究

以下是我调查的接近我想要的方法,但并不完全满足需要:

  1. 黑客复制链接书签将不起作用,因为据我所知,无法从书签更新操作系统的剪贴板,因此我认为需要 Firefox 扩展。
  2. 在 Firefox 扩展中,如何将富文本/链接复制到剪贴板?
  3. 3 个 FireFox 插件,用于更轻松地复制链接和锚文本——列出的扩展都没有我想要的,因为它们迫使你使用鼠标右键并向下导航一到两级上下文菜单,这是浪费的动作。
  4. 复制链接文本 (CoLT) - CoLT 还支持将超链接及其关联文本复制为富文本格式的链接,但它不包括默认键绑定。看起来其他人正试图将 keyconfig 绑定到 CoLT,这可能是一种解决方案。
  5. Copy URL Plus - 看起来它具有复制到剪贴板的逻辑,但看起来它自 Firefox 1.x 时间框架以来就没有得到维护。
0 投票
1 回答
13491 浏览

javascript - 如何使用 Greasemonkey 将数据复制到剪贴板?

我发现了这个问题,但试图使用那里给出的代码:


给出错误信息:

« http://example.com »的脚本被拒绝 UniversalXPConnect 权限。



我也尝试使用(来自 Mozilla 网站):

这给出了错误消息:Components.classes is undefined

在这两种情况下,它都不适用于 Windows 7 上的最新 Firefox。
我还应该尝试什么?

0 投票
2 回答
11139 浏览

javascript - jQuery zClip 复制到剪贴板,用于引导下拉列表中的多个链接?

如果这不能用于跨浏览器,那么任何评论将不胜感激。

我想要实现的是我的页面上的多个“复制到剪贴板”链接,例如......


只是没有太多的运气让任何东西工作。


我正在使用zClip,并尝试使用 jQuery onClick 和数据属性来触发,如下所示。

但就是无法让它发挥作用。见小提琴


请在此处使用zClip jquery 插件查看我的新小提琴。

http://jsfiddle.net/Vr4Ky/5/


提前感谢您的任何建议。

0 投票
1 回答
739 浏览

c# - 如何在 C# 中关闭剪贴板资源?

下面是我如何将文本字符串放入 Windows 剪贴板的代码。我正在寻找一个命令来立即关闭剪贴板资源,以便应用程序不再锁定它。你知道如何在 C# 中显式地关闭剪贴板资源吗?

这是代码

这是类 SetClipboardHelper 的代码

0 投票
1 回答
105 浏览

textbox - 如何确保在文本字段中仅使用一种字体和字体大小?

文本字段的默认设置允许将不同字体和字体大小的内容粘贴到该字段中。如何确保将粘贴的内容转换为使用特定字体和字体大小,即我选择作为该字段的默认字体?

0 投票
1 回答
321 浏览

c# - 如何绑定到 .Net 中的全局剪贴板事件?

我需要制作一个绑定到 Windows 剪贴板的简单服务应用程序。具体来说,每当发生复制/剪切操作时,我都想分析内容并在某些条件下对数据进行处理。

我知道剪贴板管理器存在,但据我所知,它们使用旧的 COM API。

我不害怕 COM dll 调用,但我很好奇,有没有办法在纯 .Net 中做到这一点,还是我仍然需要使用 COM 注册剪贴板侦听器?

0 投票
27 回答
236822 浏览

android - 如何在 Android 中将文本复制到剪贴板?

有人可以告诉我如何在按下按钮时将特定文本视图中的文本复制到剪贴板吗?

我想在bCopy按下按钮时将 TextView textView 中的文本复制到剪贴板。

0 投票
1 回答
419 浏览

anchor - 复制和粘贴时如何处理contenteditable中的URL相对/绝对“故障”

contenteditable区域中,如果您粘贴带有 URL 属性的元素,在某些浏览器中,它会将 URL 从relative转换为absolute

我已经阅读了一些声称它在最新版本中“已修复”的错误报告,但事实并非如此。

我把这个小提琴放在一起来演示:为演示万岁!

它就在那里,它很丑陋,我想知道修复它的最佳方法是什么。

  1. 想到的第一个想法是,在当前节点中onpaste查找所有内容和。我想不理想,但它可能是有效的。anchorsparse it with regex

  2. ???

  3. ???

我真的希望他们不要管它,不要contenteditable用.

关于解决这个问题的最佳方法有什么想法吗?

0 投票
0 回答
122 浏览

linux - OS X 上的 Xsel 行为

有没有办法像xselLinux 中的应用程序一样在 OS X 中获取选定的文本?我在这里搜索过pbpaste等于xsel --clipboard,因为用户需要执行 ⌘+C 才能将文本复制到剪贴板。但类似于xsel,只是通过简单地选择将文本放在不同的缓冲区中,我没有找到。有办法吗?任何应用程序?OS X 配置?

0 投票
1 回答
2524 浏览

javascript - 通过 Chrome 扩展程序中的上下文菜单选项复制选定的文本

我正在尝试创建一个上下文菜单选项,它将一些文本复制到系统剪贴板。

目前,我只是在复制一个硬编码的字符串文字,但我想知道如何将其更改为复制选定的文本。具体来说,我不知道如何正确创建createProperties对象(见底部)

据我了解,这只能通过背景页面完成。

我有以下背景页面:

background.html


context.js如下:


manifest.json的如下:


我显然错误地声明了 chrome.contextMenus.create() 函数。我已经阅读了它的文档,我只能想象我没有正确地创建createProperties对象。

我一直在尝试模仿这些来源:

是否可以通过 Chrome 扩展中的上下文菜单项调用内容脚本方法?

http://paul.kinlan.me/chrome-extension-adding-context-menus/

其他一些相关问题是:

在 Chrome 扩展中复制到剪贴板

如何将文本从 Google Chrome 扩展程序复制到剪贴板?