// ==UserScript== // @name Search Clipboard // @namespace http://www.xuldev.org/ // @description Middle-click the search engine button or popup to search clipboard text. // @include main // @compatibility Firefox 3.0, 3.5, 3.6b4 // @author Gomita // @version 1.0.20080201 // @homepage http://www.xuldev.org/misc/ucjs.php // ==/UserScript== (function() { var searchClipboard = function(event) { if (event.button != 1) return; // get clipboard text var str = readFromClipboard(); // get nsISearchEngine object var engine = event.target.engine; if (!engine) engine = document.getElementById("searchbar").currentEngine; // get nsISearchSubmission object var submission = engine.getSubmission(str, null); if (!submission) return; // decide whether opening in a new tab or not var inNewTab = gPrefService.getBoolPref("browser.search.openintab"); inNewTab = ((event && event.altKey) ^ inNewTab); // load the URL if (inNewTab) { var tab = gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, null, false); gBrowser.selectedTab = tab; } else { loadURI(submission.uri.spec, null, submission.postData, false); } // hide popup after middle-clicking the search popup if (event.target.localName == "menuitem") { event.target.parentNode.hidePopup(); event.stopPropagation(); } }; var searchbar = document.getElementById("searchbar"); // middle-click the search engine popup to search clipboard document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-popup") .addEventListener("click", searchClipboard, false); // middle-click the search engine button to search clipboard document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-engine-button") .addEventListener("click", searchClipboard, false); }());