DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
阅读:2282回复:11

ContextMenuPlus 的一个不足

楼主#
更多 发布于:2013-07-07 17:28
ContextMenuPlus 对 Firefox 浏览器内部网页的内容复制可以 Copy as Plain Text ,但对从外部应用程序复制就无能为力了,不像 Chrome 浏览器无论从哪里得到的复制源,都可以 Paste as plain text
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-25
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1115点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2013-07-07 17:28
嗯,估计扩展只限定在ff的chrome框架内部吧
Firefox More than meets your experience
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
2楼#
发布于:2013-07-07 17:28
其实只要改进一下就可以了,ContextMenuPlus 的一个不足是不能控制输出,而 Chrome 的一个不足是不能控制输入,其实两者都只要改进下结合两者的优点就可以了。不知有没有什么扩展件同时具备两者的优点?并且也具备 ContextMenuPlus 的其它功能?
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
3楼#
发布于:2013-07-07 17:28
没看懂, "从外部应用程序复制" 什么意思?"控制输入输出" 什么意思?
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
4楼#
发布于:2013-07-07 17:28
Re: hzzhaiqi
在 Firefox 网页之间复制粘贴可以称为内部复制粘贴,那么当从其它浏览器或其它应用程序如字处理软件复制内容到 Firefox 内就可以叫作“从外部应用程序复制”。
什么叫“控制输入输出”?在命令行操作环境下 copy 是一个动作,而在 Windows 下变成了可以分两步走的动作了:copy 是一个动作,paste 是另一个动作;copy 是把内容复制到缓冲区,可以看作是一个输入动作,paste 是把缓冲区的内容粘贴到目标,可以看作是一个输出动作。
ContextMenuPlus 在 Firefox 内可以 Copy as Plain Text ,当 paste 到其它网页或外部应用程序时可以 paste as plain text,而当 paste 从外部应用程序得到的内容时却无法 Paste as plain text ,也就是说 ContextMenuPlus 可以控制输入,在 copy 时去掉文字的格式;但却无法控制输出,在 paste 时去掉文字的格式。
而 Chrome 刚好相反,无论我从哪里得到的源内容,当 paste 到 Chrome 内部时都可以 Paste as plain text ,而当我复制 Chrome 内部的内容时无法 copy as plain text ,所以当我把内容 paste 到外部应用程序时自然也无法 paste as plain text 了。也就是说 Chrome 可以控制输出,在 paste 时去掉文字格式;但却无法控制输入,在 copy 时去掉文字格式。
CooB
千年狐狸
千年狐狸
  • UID2829
  • 注册日期2005-02-06
  • 最后登录2023-05-23
  • 发帖数2176
  • 经验140枚
  • 威望0点
  • 贡献值18点
  • 好评度3点
  • 社区居民
  • 忠实会员
5楼#
发布于:2013-07-07 17:28
firefox其实本来就自带了paste as plain text功能,只需要用Ctrl Shift V 就可以了。

刚用网页版的Evernote测试确认了是这样。
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
6楼#
发布于:2013-07-07 17:28
Re: CooB
我就在这个回帖试了下,当我按下 Ctrl-Shift-v 时却进入了 Full Editor 状态,难道装了 ContextMenuPlus 后默认的快捷键无效了?
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
7楼#
发布于:2013-07-07 17:28
Re: 5楼 DOSforever
感谢非常详细的解答。Ctrl + Shift + V 被 ABP 占用了.....

关于复制粘贴的格式,代码实现非常简单。ContextMenuPlus 是用 新API 开发的,
text (plain text)
    html (a string of HTML)
    image (a base-64 encoded png)

clipboard.get("text");
clipboard.set("<blink>Lorem ipsum dolor sit amet</blink>", "text");

你说的从外部程序粘贴,它的代码默认是 clipboard.get(),搜索后改成 clipboard.get("text") 即可。
文件的位置在
<!-- e --><a href="mailto:jid1-JslOo8hXnC8AZA@jetpack.xpi">jid1-JslOo8hXnC8AZA@jetpack.xpi</a><!-- e -->\resources\contextmenuplus\lib\main.js 。
一共2个,一个是菜单、一个是快捷键。
CooB
千年狐狸
千年狐狸
  • UID2829
  • 注册日期2005-02-06
  • 最后登录2023-05-23
  • 发帖数2176
  • 经验140枚
  • 威望0点
  • 贡献值18点
  • 好评度3点
  • 社区居民
  • 忠实会员
8楼#
发布于:2013-07-07 17:28
Re: CooB
DOSforever:我就在这个回帖试了下,当我按下 Ctrl-Shift-v 时却进入了 Full Editor 状态,难道装了 ContextMenuPlus 后默认的快捷键无效了?回到原帖


因为我没用ADP,所以不记得提醒了:

ctrl+shift+V 一直是FF默认的无格式粘贴,今天装了ADP发现被占用。

about:config
extensions.adblockplus.sidebar_key
Accel Shift V, Accel Shift U
定义键盘快捷键用于打开可过滤项目。此首选项可以为空,或是设定为 modifier1 modifier2 key 的格式。可用的 modifiers 有:Shift,Accel(预设的快捷键,如 Windows 上的 Ctrl,Mac OS X 上的 Command),Ctrl/Control, Alt, Meta。Key 可以是一个字母或是一个特殊键,像是 F7 或右方向键(参考 nsIDOMKeyEvent 接口 了解所有的特殊键)。 从 Adblock Plus 1.3.5 开始,可以用逗号分隔指定多个快捷键,将使用列表中首个可用的键盘快捷键。

注意:此设置在浏览器重新启动后才会生效

内容改为空或者其他,重启FF即可。
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
9楼#
发布于:2013-07-07 17:28
Re: hzzhaiqi
非常感谢给出详细的修改步骤,但我只想增加一个功能而不是改掉原有的功能
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-04-25
  • 发帖数1090
  • 经验833枚
  • 威望0点
  • 贡献值734点
  • 好评度21点
  • 社区居民
  • 忠实会员
10楼#
发布于:2013-07-07 17:28
Re: CooB
我删除了这个 Preference 的值,也就是置空,重启 Firefox 后还是无效。
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
11楼#
发布于:2013-07-07 17:28
9楼的实测有效,我改成 extensions.adblockplus.sidebar_key=Accel Shift U
游客

返回顶部