ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
30楼#
发布于:2008-01-29 17:54
把content.wrappedJSObject.multilanglookupbar.trigger("multilanglookupbar");这一句映射成快捷键是不是就可以自定快捷键触发了呢?
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
31楼#
发布于:2008-01-29 17:54
一个小建议,LangBar弹出后最好把焦点设在那个文本框里,这样方便用键盘的用户。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
32楼#
发布于:2008-01-29 17:54
再提一点,不知道是否是个问题。MLLB激活后,为什么其他扩展都得不到鼠标事件了?
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
33楼#
发布于:2008-01-29 17:54

是的呀,刚刚今天上传了新版,右键加了个打开文本链接的菜单。中键粘贴是firefox自身就有的功能阿,在about:config中修改middlemouse.paste参数,这个功能与你的热键要冲突的哦。:)


原来是自身功能, 刚知道,哈哈。
在什么时候冲突?  我一般单击就可以了。

我刚把autocopy扩展删掉,有时候还真是挺麻烦呢,你这个脚本刚刚好。
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
34楼#
发布于:2008-01-29 17:54
ithinc:一个小建议,LangBar弹出后最好把焦点设在那个文本框里,这样方便用键盘的用户。回到原帖

早期的版本其实就是你说的那样的。 但这里边firefox有个bug,就是有时候明明那个输入域有焦点, 但是却没有光标闪动, 看起来就和没有焦点一个样。

后来我写了一个获得焦点的Greasemonkey脚本,现在就在userscript.org上, 样子和大多数firefox获得焦点的扩展差不多。 但我自己并不满意那个脚本,有bug,而且从程序的角度讲,效率很差。  

我一直在找一个更smart的方式来获取焦点, 我发现在firefox 3里提供了一个api可以使这种方式成为可能。 但我现在还没有转到firefox 3上, 而且自己还有许多其他东西要看。  所以这个事情一直出于搁置状态。

再提一点,不知道是否是个问题。MLLB激活后,为什么其他扩展都得不到鼠标事件了?

你是指autocopy吗?   的确是这样的, 但并不是得不到鼠标事件, 而是在它之前,我用代码移除了高亮文本, 所以autocopy没得拷贝。

autocopy有比greasemonkey脚本高的js优先级,但却不能在其之前得到高亮文本, 这种情况只能有一种解释,就是捕捉事件的地点不对。 在看了你的autocopy脚本以后,这种观点得到了证实。

我改了你的脚本的下面两个地方,问题解决了。
window.addEventListener("mousedown", autocopyStart, true);
window.addEventListener("mouseup", autocopyStop, true);
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
35楼#
发布于:2008-01-29 17:54
不过一般文章都是推荐用false的呢。对了,你为什么要把高亮文本移除呢。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
36楼#
发布于:2008-01-29 17:54
ithinc:不过一般文章都是推荐用false的呢。对了,你为什么要把高亮文本移除呢。回到原帖

脚本监听的是mouseup动作,如果我不移除高亮的文本,每点击一次鼠标就会进行一次查词,因为有选择的文本存在。

原先,我做的判断是,如果上一次查词和这一次查词是同一个词,就不做查词动作。但新功能里有字典切换查词, 需要可以查同一个词。   还有一些其他原因可能导致在不想查的时候却查词了。

综合各种情况,移除高亮文本是最简单的解决所有问题的办法。
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
37楼#
发布于:2008-01-29 17:54
再提几点意见,别嫌我挑剔哦。

1。能否保存取词的打开状态,现在每切换一次网页都需要重新激活。主要是点击下一页时感觉不方便。
2。我找到了个双击页面空白区域的触发脚本,左键reloadOnDblClick.uc.js或右键reloadOnRDblClick.uc.js,你可以参考一下哦。我现在已经可以双击页面空白区域打开取词了。顺便问一下,为什么us.js中使用content.multilanglookupbar.trigger("multilanglookupbar")激活,而CB2中要用content.wrappedJSObject.multilanglookupbar.trigger("multilanglookupbar")激活呢?
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
38楼#
发布于:2008-01-29 17:54
3。你上传的dict.cn2008脚本少了个"}"号。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
39楼#
发布于:2008-01-29 17:54
wushi777
我现在的AutoCopy就是这么做的。

[quote]但新功能里有字典切换查词, 需要可以查同一个词。   还有一些其他原因可能导致在不想查的时候却查词了。

综合各种情况,移除高亮文本是最简单的解决所有问题的办法。
回到原帖

字典切换你侦测不到么?还有什么情况,我没想到,呵呵。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
40楼#
发布于:2008-01-29 17:54
ithinc:再提几点意见,别嫌我挑剔哦。

1。能否保存取词的打开状态,现在每切换一次网页都需要重新激活。
2。我找到了个双击页面空白区域的触发脚本,左键reloadOnDblClick.uc.js或右键reloadOnRDblClick.uc.js,你可以参考一下哦。我现在已经可以双击页面空白区域打开取词了。顺便问一下,为什么us.js中使用content.multilanglookupbar.trigger("multilanglookupbar")激活,而CB2中要用content.wrappedJSObject.multilanglookupbar.trigger("multilanglookupbar")激活呢?
回到原帖


1. 在settings里,编辑iframe style,加入display:block

2. 我研究、研究。

CB2里边和greasemonkey一样,用了XPCNativeWrapper对象包装了real object, 这种做法是实际上推荐的安全的用法。  无论你怎么操作包装了的对象,都不会对真正的对象的一些功能产生影响,同时也不会和其它脚本产生潜在的冲突。

content.wrappedJSObject则可以得到real object,实际上就是在操作最原始的文档,一般是不推荐这样做的。 但在我的脚本里,需要一个能跨iframe和frames的公共域。 目前我只找到这样一个方法。

3.  都有谁在抱怨multi-lang lookup bar占用内存?帮我看看version:2.0.1a 会不会对内存占用有一些积极的影响。   目前可以在settings->box.net里下载到。
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
41楼#
发布于:2008-01-29 17:54


1. 在settings里,编辑iframe style,加入display:block

加入这项后变成始终打开了。


3.  都有谁在抱怨multi-lang lookup bar占用内存?帮我看看version:2.0.1a 会不会对内存占用有一些积极的影响。   目前可以在settings->box.net里下载到。

这点倒没有特别注意,怎么看效果呢?
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
42楼#
发布于:2008-01-29 17:54
有个问题可能与你的脚本有关,每次查词Error Console都可以看到好多条这样的错误:Error: uncaught exception: Permission denied to call method Location.toString。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
43楼#
发布于:2008-01-29 17:54
有个问题可能与你的脚本有关,每次查词Error Console都可以看到好多条这样的错误:Error: uncaught exception: Permission denied to call method Location.toString。

这个应该不是吧。
我这里常有的错误是这样的:
http://greasemonkey-users.googlegroups. ... FfM73xMVNe

不是侦测不到,而是遇到问题的时候,我总是在寻求最简单的解决办法,因为我坚信在代码的世界里,越简单的东西越健壮。
如果不去移除高亮,我就需要对可能出现的各种情况做代码上的判断,这样就很有可能出现思考上的遗漏。

3。你上传的dict.cn2008脚本少了个"}"号。

是吗?   我是直接拷贝过去的呀。
我把新的已经放上去了,主要是对发音功能修理了bug。
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
44楼#
发布于:2008-01-29 17:54

是吗?   我是直接拷贝过去的呀。
我把新的已经放上去了,主要是对发音功能修理了bug。

不好意思,我搞错了,正则式里有个{号,编辑器提示错误。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
游客

返回顶部