зеркало из https://github.com/mozilla/gecko-dev.git
Adding search logic to url bar r=bill 24582
This commit is contained in:
Родитель
b8e47eaf4d
Коммит
3d3412f5eb
|
@ -527,64 +527,79 @@ function OpenSearch(tabName, forceDialogFlag, searchStr)
|
||||||
autoOpenSearchPanel = pref.GetBoolPref("browser.search.opensidebarsearchpanel");
|
autoOpenSearchPanel = pref.GetBoolPref("browser.search.opensidebarsearchpanel");
|
||||||
searchEngineURI = pref.CopyCharPref("browser.search.defaultengine");
|
searchEngineURI = pref.CopyCharPref("browser.search.defaultengine");
|
||||||
defaultSearchURL = pref.CopyCharPref("browser.search.defaulturl");
|
defaultSearchURL = pref.CopyCharPref("browser.search.defaulturl");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(ex)
|
catch(ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((defaultSearchURL == null) || (defaultSearchURL == ""))
|
if ((defaultSearchURL == null) || (defaultSearchURL == ""))
|
||||||
{
|
{
|
||||||
// Fallback to a Netscape default (one that we can get sidebar search results for)
|
// Fallback to a Netscape default (one that we can get sidebar search results for)
|
||||||
defaultSearchURL = "http://search.netscape.com/cgi-bin/search?search=";
|
defaultSearchURL = "http://search.netscape.com/cgi-bin/search?search=";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((searchMode == 1) || (forceDialogFlag == true))
|
if (window.content.location.href == searchStr)
|
||||||
{
|
{
|
||||||
// Use a single search dialog
|
dump(searchStr + ' Search: ' + defaultSearchURL + '\n');
|
||||||
var cwindowManager = Components.classes["component://netscape/rdf/datasource?name=window-mediator"].getService();
|
if (!(defaultSearchURL == "http://search.netscape.com/cgi-bin/search?search=")) {
|
||||||
var iwindowManager = Components.interfaces.nsIWindowMediator;
|
window.content.location.href = defaultSearchURL;
|
||||||
var windowManager = cwindowManager.QueryInterface(iwindowManager);
|
|
||||||
var searchWindow = windowManager.getMostRecentWindow("search:window");
|
|
||||||
if (searchWindow)
|
|
||||||
{
|
|
||||||
searchWindow.focus();
|
|
||||||
if (searchWindow.loadPage) searchWindow.loadPage(tabName, searchStr);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
window.openDialog("chrome://search/content/search.xul", "SearchWindow", "dialog=no,close,chrome,resizable", tabName, searchStr);
|
window.content.location.href = "http://search.netscape.com/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((!searchStr) || (searchStr == "")) return;
|
if ((searchMode == 1) || (forceDialogFlag == true))
|
||||||
|
|
||||||
var searchDS = Components.classes["component://netscape/rdf/datasource?name=internetsearch"].getService();
|
|
||||||
if (searchDS) searchDS = searchDS.QueryInterface(Components.interfaces.nsIInternetSearchService);
|
|
||||||
|
|
||||||
var escapedSearchStr = escape(searchStr);
|
|
||||||
defaultSearchURL += escapedSearchStr;
|
|
||||||
|
|
||||||
if (searchDS)
|
|
||||||
{
|
{
|
||||||
searchDS.RememberLastSearchText(escapedSearchStr);
|
// Use a single search dialog
|
||||||
|
var cwindowManager = Components.classes["component://netscape/rdf/datasource?name=window-mediator"].getService();
|
||||||
if ((searchEngineURI != null) && (searchEngineURI != ""))
|
var iwindowManager = Components.interfaces.nsIWindowMediator;
|
||||||
|
var windowManager = cwindowManager.QueryInterface(iwindowManager);
|
||||||
|
var searchWindow = windowManager.getMostRecentWindow("search:window");
|
||||||
|
if (searchWindow)
|
||||||
{
|
{
|
||||||
try
|
searchWindow.focus();
|
||||||
{
|
if (searchWindow.loadPage) searchWindow.loadPage(tabName, searchStr);
|
||||||
var searchURL = searchDS.GetInternetSearchURL(searchEngineURI, escapedSearchStr);
|
}
|
||||||
if ((searchURL != null) && (searchURL != ""))
|
else
|
||||||
{
|
{
|
||||||
defaultSearchURL = searchURL;
|
window.openDialog("chrome://search/content/search.xul", "SearchWindow", "dialog=no,close,chrome,resizable", tabName, searchStr);
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.content.location.href = defaultSearchURL;
|
else
|
||||||
|
{
|
||||||
|
if ((!searchStr) || (searchStr == "")) return;
|
||||||
|
|
||||||
|
var searchDS = Components.classes["component://netscape/rdf/datasource?name=internetsearch"].getService();
|
||||||
|
if (searchDS) searchDS = searchDS.QueryInterface(Components.interfaces.nsIInternetSearchService);
|
||||||
|
|
||||||
|
var escapedSearchStr = escape(searchStr);
|
||||||
|
defaultSearchURL += escapedSearchStr;
|
||||||
|
|
||||||
|
if (searchDS)
|
||||||
|
{
|
||||||
|
searchDS.RememberLastSearchText(escapedSearchStr);
|
||||||
|
|
||||||
|
if ((searchEngineURI != null) && (searchEngineURI != ""))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var searchURL = searchDS.GetInternetSearchURL(searchEngineURI, escapedSearchStr);
|
||||||
|
if ((searchURL != null) && (searchURL != ""))
|
||||||
|
{
|
||||||
|
defaultSearchURL = searchURL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.content.location.href = defaultSearchURL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// should we try and open up the sidebar to show the "Search Results" panel?
|
// should we try and open up the sidebar to show the "Search Results" panel?
|
||||||
|
|
Загрузка…
Ссылка в новой задаче