本站不兼容 8 以前的版本的 Interner Explorer 浏览器(或基于这些版本的 IE 的其他浏览器),并且页面样式不完全兼容 IE 8,我们建议你升级至 IE 9 或改用其他非 IE 浏览器

Mozest™

  • 正在加载用户菜单…

开放、分享、互助

转播到腾讯微博
返回列表 回复 发帖

Searchbar Utils:支持OSE的搜索栏增强脚本【20090413更新】

本帖最后由 我行我速 于 2010-3-2 15:09 编辑

该脚本集合了以下功能:

1。鼠标滚轮选择搜索引擎;

2。搜索引擎菜单增强功能
鼠标左键点击搜索引擎菜单,切换至该引擎,并立即搜索;
鼠标中键点击搜索引擎菜单,切换至该引擎,粘贴剪贴板的内容至搜索框,并立即搜索;
鼠标右键点击搜索引擎菜单,切换至该引擎,同步当前页选定文字/文本框的内容至搜索框,并立即搜索;
Ctrl+鼠标左键点击搜索引擎菜单,不切换引擎,并立即搜索,且保持搜索引擎菜单打开状态;
拖放文字到搜索引擎菜单按钮,弹出搜索引擎菜单;拖放到搜索引擎菜单,切换至该引擎,并立即搜索;

3。搜索按钮(放大镜)增强功能
鼠标左键点击放大镜按钮,在新标签中打开搜索;
Ctrl+鼠标左键点击放大镜按钮,在当前标签中打开搜索;
鼠标中键点击放大镜按钮,粘贴剪贴板的内容至搜索框,并立即搜索;
鼠标右键点击放大镜按钮,清空搜索框,或同步当前页选定文字/文本框的内容至搜索框;
鼠标右键双击放大镜按钮,清空搜索框,并切换至默认搜索引擎。
拖放文字到放大镜按钮,在新标签中打开搜索;

4。在搜索栏显示常用搜索引擎按钮(可通过脚本中的engineButtons数组配置):
鼠标左键点击搜索引擎按钮,切换至该引擎,并立即搜索;
鼠标中键点击搜索引擎按钮,切换至该引擎,粘贴剪贴板的内容至搜索框,并立即搜索;
鼠标右键点击搜索引擎按钮,切换至该引擎,同步当前页选定文字/文本框的内容至搜索框,并立即搜索;
拖放文字到搜索引擎按钮,切换至该引擎,并立即搜索;

效果示意图:


5。搜索框增强功能
回车键在新标签中打开搜索;
Alt+回车键在当前标签中打开搜索;
拖放文字到搜索框,在新标签打开搜索;

6。搜索后自动清除搜索框关键字并切换至默认搜索引擎(缺省关闭);

同时支持Organize Search Engines搜索引擎菜单和原版搜索引擎菜单,所有搜索默认均在新标签打开,参数'tab'(新标签后台/前台)可修改为'tabshifted'(新标签前台/后台)或'current'(当前标签),前后台由browser.tabs.loadBookmarksInBackground参数控制。Firefox 3.0.8 + OSE 1.4/1.5RC1 测试通过。

重要!本脚本需要WindowHook脚本配合使用。
附件: 您所在的用户组无法下载或查看附件
不错的脚本,谢谢分享。
用搜索栏时,求这样的功能而不得,
现在不用搜索栏好多年,又有了,


柳 丝 榆 荚 自 芳 菲,不 管 桃 飘 与 李 飞。
桃 李 明 年 能 再 发,明 年 闺 中 知 有 谁?
试 看 春 残 花 渐 落,便 是 红 颜 老 死 时。
一 朝 春 尽 红 颜 老,花 落 人 亡 两 不 知!

支持下,测试有效
本帖最后由 我行我速 于 2009-3-28 11:29 编辑

以下脚本搜索后500ms自动清除搜索栏关键字并切换至默认搜索引擎。
  1. (function() {
  2.   var searchbar = document.getElementById("searchbar");
  3.   if (isElementVisible(searchbar)) {
  4.     searchbar.doSearch_orginal = searchbar.doSearch;
  5.     searchbar.doSearch = function (aData, aWhere) {
  6.       this.doSearch_orginal(aData, aWhere);
  7.       setTimeout(function() {
  8.         var searchbar = document.getElementById("searchbar");
  9.         searchbar.currentEngine = searchbar.searchService.defaultEngine;
  10.         searchbar.value = "";
  11.       }, 500);
  12.     };
  13.   }
  14. })();
复制代码
与OSE 1.5RC1不兼容。
搜索在当前标签页打开怎么设置?
搜索在当前标签页打开怎么设置?
qjahz 发表于 2009-3-27 17:24
'tab' 换成 'current'。
'tab' 换成 'current'。
我行我速 发表于 2009-3-27 18:28
问题解决,谢谢楼主
本帖最后由 nettrottist 于 2009-3-27 19:16 编辑

那个清空并返回默认搜索的脚本,
1.在搜索框键入搜索字并回车

2.用“粘贴并搜索”菜单发起搜索
3.用鼠标手势的“搜索”手势
这三种情况下,并不起作用。但搜索换成主贴那个脚本的方式来发起就有用。

是不是仍然跟organize search engines的open all tabs有冲突?
那个清空并返回默认搜索的脚本,无效……
是不是仍然跟organize search engines的open all tabs有冲突?
nettrottist 发表于 2009-3-27 18:39
5楼的脚本和
Searchbar Utils3.0*、3.5、3.6a我这里测试可用
楼上没有用organize search engines这个扩展吗?
本帖最后由 我行我速 于 2009-3-27 19:18 编辑

5楼的脚本是为了和1楼Searchbar Utils脚本配合使用的。回车键搜索方式我并没有修改,可能被你的OpenNewTab脚本接管了。Searchbar Utils脚本为了支持OSE的Open All in Tabs功能,把TMP等TAB类扩展对搜索框的修改bypass了。
那个清空并返回默认搜索的脚本,
1.在搜索框键入搜索字并回车(有时可以,有的时候又不可以。让我多测试几回看看)
2.用“粘贴并搜索”菜单发起搜索
3.用鼠标手势的“搜索”手势
这三种情况下,并不起作用。但搜索换 ...
nettrottist 发表于 2009-3-27 18:39
你可以把你2/3的代码贴一下,我指给你怎么解决。
2.用“粘贴并搜索”菜单发起搜索
  1. // ==UserScript==
  2. // @name         Paste And Search
  3. // @include      main
  4. // @version      1.0.20081010
  5. // ==/UserScript==
  6. document.getElementById("searchbar").addEventListener("popupshowing", function(event) {
  7.         const eltID = "pasteandsearch-menuitem";
  8.         var menupopup = event.originalTarget;
  9.         var refChild = menupopup.getElementsByAttribute("cmd", "cmd_paste")[0];
  10.         var canPaste = refChild.getAttribute("disabled") == "true";
  11.         var menuitem = document.getElementById(eltID);
  12.         if (!menuitem) {
  13.                 var pasteAndSearch = function(event) {
  14.                         goDoCommand("cmd_paste");
  15.                         document.getElementById("searchbar").handleSearchCommand(event);
  16.                         menupopup.hidePopup();
  17.                 };
  18.                 menuitem = document.createElement("menuitem");
  19.                 menuitem.id = eltID;
  20.                 menuitem.setAttribute("label", "\u7C98\u8D34\u5E76\u641C\u7D22");
  21.         menuitem.setAttribute("accesskey", "G");
  22.                 menuitem.addEventListener("command", pasteAndSearch, false);
  23.                 menupopup.insertBefore(menuitem, refChild.nextSibling);
  24.         }
  25.         menuitem.setAttribute("disabled", canPaste.toString());
  26. }, false);
复制代码
3.用鼠标手势的“搜索”手势
  1. var str = readFromClipboard();
  2. var searchbar = document.getElementById("searchbar");
  3. var DomainName = /(\w+(\-+\w+)*\.)+\w{2,7}/;
  4. var HasSpace = /\S\s+\S/;
  5. var HasTwOrSlash = /^(www|bbs|forum|blog)|\//;
  6. var IsIpAddress = /^([1-2]?\d?\d\.){3}[1-2]?\d?\d/;
  7. var IsURL = !HasSpace.test(str)
  8.              && (HasTwOrSlash.test(str)
  9.                  && DomainName.test(str)
  10.                  || IsIpAddress.test(str));
  11. if (IsURL) {
  12.    gBrowser.selectedTab = gBrowser.addTab(str);
  13. }
  14. else{
  15.    searchbar.value = str;
  16.    searchbar.handleSearchCommand(event);
  17. }
复制代码
把 handleSearchCommand(event) 替换为 doSearch(document.getElementById("searchbar").value, 'tab') 一般就可以去除TAB类扩展对搜索框的控制了。
准备在Searchbar Utils脚本中把回车键也接管过来,有必要吗?
把 handleSearchCommand(event) 替换为 doSearch(document.getElementById("searchbar").value, 'tab') 一般就可以去除TAB类扩展对搜索框的控制了。
我行我速 发表于 2009-3-27 19:24
管用啊。按照你说的办法替换了一下现在都起效了!
顶楼已更新,新加入“回车键在新标签中打开搜索,Alt+回车键在当前标签中打开搜索”的功能,并把连续搜索保持引擎菜单打开的功能调整到更为方便的Ctrl+鼠标左键上,现在很完美了。
本帖最后由 nettrottist 于 2009-3-29 09:39 编辑

感谢继续更新。

1.在搜索框键入搜索字并回车。不清空并弹回默认
2.我这里用alt+回车键就会自动关闭Firefox。看也没有默认和自定的快捷键是这样的啊

——原因可疑待查。
============

据查还是跟标签类的脚本有关。停用脚本换成Tab Mix Plus故障就被排除。看来tab mix plus难以完全被替代。决心回到tab mix plus的怀抱。
本帖最后由 我行我速 于 2009-4-13 10:30 编辑

自动清除搜索栏关键字并切换至默认搜索引擎脚本,支持OSE 1.5RC1。
  1. (function () {
  2.   var searchbar = document.getElementById("searchbar");
  3.   if (isElementVisible(searchbar)) {
  4.     eval("searchbar.doSearch = " + searchbar.doSearch.toString().replace(/}$/, "\
  5.       setTimeout(function() {\
  6.         var searchbar = document.getElementById('searchbar');\
  7.         searchbar.currentEngine = searchbar.searchService.defaultEngine;\
  8.         searchbar.value = '';\
  9.       }, 500);\
  10.     }"));
  11.   }
  12. })();
复制代码
已集成在searchbarUtils.uc.js脚本中。
本帖最后由 nettrottist 于 2009-3-28 11:37 编辑

测试通过。
凌川版的3.0.9完全不支持3.28日版的脚本,凌川版下载地址:http://bit.ly/rjBcG
只用绫川3.1beta4改造的版本。我这里是没有问题

http://marilab.hp.infoseek.co.jp/buildfx/index_en.html
只用绫川3.1beta4改造的版本。我这里是没有问题

http://marilab.hp.infoseek.co.jp/buildfx/index_en.html
nettrottist 发表于 2009-3-29 09:20
发现我用的3.1b4凌川办也没有问题,为什么3.0.9就不行?
本帖最后由 qjahz 于 2009-3-29 12:50 编辑
楼主是用3.0.7版本测试的呢。我觉得还是跟你在用的标签类脚本有点冲突的小问题。
我现在已经回到tab mix plus怀抱了。标签类脚本在我这里也是小问题层出不穷。尽管这些小问题也非举足轻重但是我觉得不太舒服。感觉ta ...
nettrottist 发表于 2009-3-29 11:52
标签页扩展的启动速度不知道怎么测试。
不知道就完全凭感觉呗……哈哈
凌川版的3.0.9完全不支持3.28日版的脚本,凌川版下载地址:http://bit.ly/rjBcG
qjahz 发表于 2009-3-29 08:01
这个版本我测试下来是正常的。
这个版本我测试下来是正常的。
我行我速 发表于 2009-3-29 18:04
问题解决。安装userchrome.js扩展
不错的说,支持下