|
阅读:1589回复:1
实现搜索但不切换搜索引擎
点击搜索引擎图标后只实现搜索但不切换搜索引擎
FF中能不能实现呢? |
|
|
1楼#
发布于:2010-03-10 10:49
扩展我不清楚有没有,uc脚本倒是有挺多的,
下面这个是中键点击临时使用搜索引擎,不切换搜素引擎: /* Middle Click and Go
* nanto_vi (TOYAMA Nao), 2006-12-30
*
* Paste-and-Go when middle-clicking on the URL bar and
* Past-and-Search when middle-cliking on the search bar.
*
* Original Author: Gomita
* Original Extension: Search Clipboard (a user script for userChrome.js)
* <http://amb.vis.ne.jp/mozilla/?p=53>
*/
(function MiddleClickAndGo() {
init: {
document.getElementById("urlbar").mInputElt
.addEventListener("click", onURLBarClick, false);
// XXX A click event doesn't fire when the search bar doesn't have focus...
document.getElementById("searchbar").textbox.mInputElt
.addEventListener("mouseup", onSearchBarClick, false);
document.getElementById("searchbar")._popup
.addEventListener("click", onSearchPopupClick, false);
}
function getClipboardText() {
try {
var clip = Cc["@mozilla.org/widget/clipboard;1"]
.createInstance(Ci.nsIClipboard);
var trans = Cc["@mozilla.org/widget/transferable;1"]
.createInstance(Ci.nsITransferable);
trans.addDataFlavor("text/unicode");
clip.getData(trans, clip.kGlobalClipboard);
var string = {};
trans.getTransferData("text/unicode", string, {});
return string.value.QueryInterface(Ci.nsISupportsString).data;
} catch (e) {
return "";
}
}
function onURLBarClick(aEvent) {
if (aEvent.button != 1) return;
var uri = getClipboardText();
if (!uri) return;
if (aEvent.ctrlKey)
gBrowser.loadOneTab(uri, null, null, null, false);
else
loadURI(uri);
content.focus();
aEvent.preventDefault();
aEvent.stopPropagation();
}
function onSearchBarClick(aEvent) {
searchForClipboardText(document.getElementById("searchbar").currentEngine,
aEvent);
}
function onSearchPopupClick(aEvent) {
if ("engine" in aEvent.target &&
searchForClipboardText(aEvent.target.engine, aEvent))
this.hidePopup();
}
function searchForClipboardText(aEngine, aEvent) {
if (aEvent.button != 1) return false;
var keyword = getClipboardText().replace(/^\s+|\s+$/g, "");
if (!keyword) return false;
var searchBar = document.getElementById("searchbar");
searchBar.textbox.textValue = keyword;
searchBar.removeAttribute("empty");
var submission = aEngine.getSubmission(keyword, null);
if (aEvent.ctrlKey)
gBrowser.loadOneTab(submission.uri.spec, null, null,
submission.postData, false);
else
loadURI(submission.uri.spec, null, submission.postData);
content.focus();
aEvent.preventDefault();
aEvent.stopPropagation();
return true;
}
})(); |
|