- From: Diogo Resende <dresende@thinkdigital.pt>
- Date: Thu, 14 Oct 2010 11:42:14 +0100
Hi, Are you covering such a use case: user enters a website, goes to the search box (of the browser, not the page), and it is able to search based on suggestions given by the page? I think this would be great and would be a good way to normalize the way people search inside a given page/app. -- Diogo On Wed, 2010-10-13 at 15:59 -0700, Tony Gentilcore wrote: > Hi All, > > We're adding instant search integration [1] to Google Chrome, allowing > the search provider to communicate suggestions to the user agent. > > If there is interest, we'd like to make sure that we do this in such a > way that any search provider or user agent can implement it. > > While the search boxes in most user agents support suggestions via an > HTTP API, instant requires a DOM API. We propose exposing a > window.navigator.searchBox object. There is some precedence for this > with window.navigator.registerProtocolHandler()/registerContentHandler() > [2]. > > Is this something that others are interested in? If so, any feedback > on our working API [3]? > > -Tony > > [1] http://googlesystem.blogspot.com/2010/09/instant-search-in-google-chrome.html > [2] http://dev.w3.org/html5/spec/Overview.html#navigator > [3] > > interface SearchBox { > // Search query and cursor position. > readonly attribute DOMString value; > readonly attribute unsigned long selectionStart; > readonly attribute unsigned long selectionEnd; > > // Dimensions of the portion of the search box (e.g. a dropdown) > // that overlaps the window. > readonly attribute unsigned long x; > readonly attribute unsigned long y; > readonly attribute unsigned long width; > readonly attribute unsigned long height; > > // Set ordered suggestions. Valid for current this.value. > void setSuggestions(in DOMStringArray suggestions); > > // Notification that the user has changed the input value. > attribute Function onchange; > > // Notification that the user has committed input (e.g. pressed enter). > attribute Function onsubmit; > > // Notification that the user has selected a suggestion (e.g. down > arrow to suggestion). > attribute Function onselect; > > // Notification that the user has cancelled input (e.g. closed dropdown). > attribute Function oncancel; > > // Notification that the dimensions of the overlapping region have changed. > attribute Function onresize; > } > > [Supplemental] > interface NavigatorAbilities { > // Raises permission denied if page isn't default search provider. > readonly attribute SearchBox searchBox; > } > > // Example usage. > var searchBox = window.navigator.searchBox; > searchBox.onchange = function() { > if (this.selectionStart == this.selectionEnd && > this.selectionStart == this.value.length) > alert('Cursor is at end of input'); > > alert('Setting suggestions for: ' + this.value); > this.setSuggestions(["one", "two"]); > } > searchBox.onsubmit = function() { > alert('User searched for: ' + this.value); > } > searchBox.onselect = function() { > alert('User selected suggestion: ' + this.value); > } > searchBox.oncancel = function() { > alert('Query when user cancelled: ' + this.value); > } > searchBox.onresize = function() { > alert('Resized to: ' + > [this.x, > this.y, > this.width, > this.height].join(',')); > }
Received on Thursday, 14 October 2010 03:42:14 UTC