Search in IE7 RC1


Last time I posted about search I talked about our new extensibility mechanisms: window.external.AddSearchProvider, and Search Discovery.  Today I’d like to talk about enhancements we made since that post, and point you to a tool that you can use to create your own custom providers.

To recap the last post: In Beta 2, window.external.AddSearchProvider gave website authors the ability to put a link on their page to prompt users to add a new search provider.  We locked this call down using logic similar to how we lock down pop-up windows to ensure it would not be abused by bad sites.

Since then we have added a few additional features.

window.external.IsSearchProviderInstalled

Since Beta 2 we received feedback that sites really do not want to show those links for the people who already have their providers installed: similar to how our homepage API works.  To make life better for site authors we introduced a new API: window.external.IsSearchProviderInstalled. A site author can use this API to see if their provider is already on the search provider list and also check to see if it is the default.

In order to protect your privacy we created this API in a way that sites can only ask about providers with the same top level domain.  For instance: site1.com can ask if any site1.com search provider is installed, but cannot ask if a site2.com provider is installed.  For more details on this API please check out the MSDN article.

OpenSearch Referrer Extension

In Beta 3 we did not have a good mechanism to tell search providers whether the query came from the search box or the address bar.  OpenSearch has an extension for this (the referrer extension) and RC1 supports it. 

Here’s an example for the following OpenSearch URL:

<Url type=”application/rss+xml”
    
xmlns:referrer=http://a9.com/-/opensearch/extensions/referrer/”
     template=”http://www.example.com/search?q={searchTerms}&amp;src={referrer:source?}”/>

If the query came from the address bar IE will replace “{referrer:source?}” with “IE-Address”, and if it came from the search box we replace it with “IE-SearchBox” allowing search providers to track which IE 7 entrypoint their search came from.

Search Discovery Sound

If you recall from my previous post, Search Discovery is a feature web sites can use to ‘suggest’ search providers in your search provider dropdown.  When you navigate to a site that supports Search Discovery the search button dropdown will change color, and the discovered provider will appear within the dropdown.  Since we introduced this feature we have seen adoption on various sites around the web.  A great example of a site that recently started supporting Search Discovery is Yahoo! Tech.

In Beta 3 we did not have a fully accessible notification for Search Discovery; we only had the ability for the button to light up.  In RC1 we added the ability to set a sound for this action.  It is off by default, but you can set this sound where you set other windows sounds (the “Sounds and audio devices” properties from the Windows Control Panel).  From this properties dialog select the “Sounds” tab and add a sound to the “Search Provider Discovered” event within the “Program events” box.

Build your own provider

Shifting gears slightly, another piece of feedback that we’ve heard is that people would like to know how to add custom providers not necessarily shown on the Windows Search Guide.  We hope that eventually your favorite site will leverage Search Discovery or AddSearchProvider, but until then you can add a specific provider yourself using this tool.

Have fun, and keep browsing!

Aaron Sauvé
Program Manager

Edit: Added amp; to XML example

Comments (48)

  1. Anonymous says:

    <a href=http://super-bowl-betting.winbingocard.com/super-bowl-party-betting.html>super bowl party betting</a> Betting on the Stanley Cup: Small Markets Spell Big Winners
    <a href=http://casino-hotel.winbingocard.com/treasure-island-hotel-and-casino-las-veg.html>casino hotel</a>  T.J.  T. . , A part of The New York Times Company. All rights reserved.
    gambling <a href=http://online-gambling.winbingocard.com/online-gambling-legal.html>online gambling legal</a>

  2. Anonymous says:

    My only suggestion would be to create some sort of shortcut so that you do not need to go to the actual drop down box and select which search engine you want to use.  Say for instance you want to search a word at dictionary.com, instead of typing in the word then using the drop down box, you type in the word and hit ctrl+ a letter assigned to that specific search engine.  That would be a really great feature!

  3. Anonymous says:

    Nocturnal:

    That is a good idea. Opera has it set up so that you can configure a prefix to search, for example:

    m internet explorer

    Could be set up to search MSN Search for "internet explorer". I think a similar feature would be a great feature for future releases.

  4. Anonymous says:

    Aedrin:

    Actually, the same is possible in IE6 and later (it MIGHT be possible in earlier versions, but I doubt it), although it’s not configurable from within the browser.

    Personally, I have it set up so that I can type "wp Internet Explorer" to go to the Wikipedia article for Internet Explorer.

    TweakUI for Windows can be used to create these, but if you want to tweak any special replacements (for example, using _ for a space instead of +, like Wikipedia does), you’ll need to fiddle a little with the registry.

    Here’s the actual example I use for my Wikipedia "shortcut" – copy/paste it into a .reg file and merge it into the registry:

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerSearchUrlwp]

    @="http://en.wikipedia.org/wiki/%s&quot;

    " "="_"

    "+"="%2B"

    "%"="%25"

    "&"="%26"

    Basically, you just create a key in HKCUSoftwareMicrosoftInternet ExplorerSearchUrl with the name of your shortcut, set the URL used for searching as the default value (with %s in place of the actual query).

    Then, add any necessary substitutions that need to be made with the character to substitute as the name, and the string to use in place as the value. By default, no substitutions will be made, but TweakUI will automatically create these:

    " "="+"

    "%"="%25"

    "&"="%26"

    "+"="%2B"

  5. Anonymous says:

    Aedrin:

    Actually IE 6 and 7 also has that functionality, but its very *very* buried right now, and is only supported in the address bar.

    To use this you need to go into the registry and add a key under the HKCU/…/Internet Explorer/SearchUrl.  The name of the key is the term that you use to initiate the search from the address bar.

    For example this registry change will add a kb search anytime you start your address bar query with the term ‘kb’.

    [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerSearchUrlKB]

    @="http://support.microsoft.com/search/default.aspx?catalog=LCID%3D1033&query=%s&quot;

    So the reg key under "SearchUrl" is KB, and the value for that key is the URL to search on.  %s is where the address bar search term will be substituted.

    In the future it would be good to merge this in with our search UX so it can be configured in the UI, not just the registry.

  6. Anonymous says:

    Michael beat me to it 🙂

  7. Anonymous says:

    Hi!

    About this problem:

    http://www.rafaelbittencourt.com

    I create a iframe with auto-resize…every page opened in each link is target to this frame, that show the content and resize the height of the iframe to the original height of the page inside. But this don’t works in IE7. I test in IE6, Firefox, Opera and all of them works.

    This is a temporary problem in beta version or something more complicated in the new IE7?

    Thanks a lot for attention!!!

  8. Anonymous says:

    Those are very goods news, specially about IsSearchProviderInstalled availability.

    I also would like to know if there is any way to implement a feature kind-of "Google Suggest" in Search Provider Dropdown. Firefox 2 Beta 1 implements this and I think it would be of great value to users -and also to Microsoft- to make it also available, on IE7…?

    Thank you,

    António Cruz

  9. Anonymous says:

    There is also a website which lets you create OpenSearch search plugins, and stores them in a public list of previously created search plugins – you can also register with the site and maintain a ‘private’ list of search plugins.

    The site is http://www.searchplugins.net/

  10. Anonymous says:

    In a JavaScript world, window.external.IsSearchProviderInstalled should be window.external.isSearchProviderInstalled.

    By the way, there’s a quotation mark missing:

    xmlns:referrer=http://a9.com/-/opensearch/extensions/referrer/&quot;

  11. Anonymous says:

    you guys suck big time

  12. Anonymous says:

    Why doe ie 7 return a browser sig of IE 4? I am trying to test it with some of our apps and I am having problems because we only support > 5.5

  13. Anonymous says:

    ARE YOU SERIOUS???? ON THIS BLOG, you are posting a single method with 2 glaring errors?

    Ok, what kind of programer creates a method, starting with "is", that has possible returns of 3 Integer values?

    any "is" method, should return Boolean, plain and simple.

    you should rename the method to something reasonable, like:

    window.external.installedSearchProviderStatus

    Also note, that since this isn’t a "Class", the name should start lowercase… like… hmmm, everything else in Javascript…

    document.images

    window.opener

    navigator.userAgent

    location.href

    classes:

    var foo = new Date();

    var bar = new Array();

    var baz = new Object();

    So, again.. when posting code on this blog, take a moment to review what you’ve written, and cleaned it up.

    ugh.

  14. Anonymous says:

    Rick –

    Didn’t your mommy teach you any manners?

    Next time, see if you can make your point without being a condensending a-hole.

    (btw, care to share your code with the rest of the world?)

  15. Anonymous says:

    I wrote a post about how Yahoo! Tech added OpenSearch. It’s fairly easy to do. Yahoo! Tech, at this time, is only offering an html output for search. You’ll get more benefit from IE7 with an rss feed, but don’t let that stop you from working on it today.

    http://www.last-child.com/add-opensearch-to-your-web-site/

  16. Anonymous says:

    @adam

    sorry to have offended you, but as an avid developer, following this blog for the sole purpose of watching how IE is improving and becomming more supportive of standards, this site is *critical* for developers to read, to find out what is going on, and what they *should* be doing to be ready for the changes in IE7.

    Unlike yourself, i did not use any bad words.  I may have questioned the skill set of the programmer that released the code, but under the circumstances (i.e. the location) i think it wasn’t unfair at all.

    Code published on this blog, by developers (or in this case, by the programmer’s program manager), should have gone under at least one senior developers eyes before making it here.

    My points were simple.

    1.) The method is incorrectly named, for the return type.

    2.) The case, of the first character is also wrong, since this is not an Objectclass.

    And as for your (btw), I believe i did.

    The method should be named as (or similar):

    full name:  window.external.installedSearchProviderStatus

    params:

    sURL: Required. String that specifies an absolute URL for the search provider.

    returns:

    0: Not installed.

    1: Is installed.

    2: Is installed, and default.

  17. Anonymous says:

    hey, just wanted to let you now.

    The security on the addProvider call is broken.

    You can call it from anywhere.

    Just put the call on an onclick handler for a link, then from elsewhere, call:

    thatLinkObject.click();

    Bingo! Instantly spam an inoccent user with requests to use your search engine that they didn’t want.

    danka

    Omar

  18. Anonymous says:

    @Rick,

    I agreed with your entire point. I do think that it is unprofessional for code to be posted without being double-checked.

    I guess I am just tired of people being less than professional and courteous with their responses. You don’t have to get in someone’s face or put them down to make a point, and they are much more likely to listen if you are respectful.

  19. Anonymous says:

    Imagine I have four tabs open

    In Tab2, I open a "target=_blank" window

    The new tab appears between Tab2 and Tab3

    That is GOOD, GOOD, GOOD

    ********************************************

    Lets call the new tab Tab2A

    When I close Tab2A, then Tab3 becomes the Active tab

    That is BAD, BAD, BAD

    please make Tab2 the ACTIVE ta

    move to the Left not to the Right

    Thanks (I hope)

    Pete (Northolt UK)

  20. Anonymous says:

    Can I turn both new features off, please (Registry?)

    I neither want them to know if I have them installed (imagine a warez-side that only allows you to continue on their side until search provider is installed), nor should they be able to put additional adds in it if I use the search bar.

    I don’t want search engines to know that stuff.

    A registry key or group policy please???

  21. Anonymous says:

    Rick,

    First letter cap has in general been our convention across our window.external methods – as with anything there are a few cases that go the other way.

    See for example:

    external.AddFavorite

    external.NavigateAndFind

    external.AutoScan

    external.ShowBrowserUI

    etc…

    To the second point, when we originally designed this it was a boolean "yes/no", but later added the third state allowing providers to determine if they are the default.  

    The call still works within a logical statement such as:

    if (IsSearchProviderInstalled(“foo.com”))

    {

    }

    else

    {

    }

    So the call logically makes sense in that context although I agree with you, it is not perfect.

  22. Anonymous says:

    Peter,

    We have an advanced setting that will change the behavior of the switching and closing tabs to be a most recently visited order.  I think that will solve your problem.

    It’s in the advanced tab of internet options under Browsing: "Use most recent order when switching tabs with Ctrl+Tab"

    Hope that helps!

  23. Anonymous says:

    Please take Christian’s concerns seriously. The last thing I want to see is two warnings on sites:

    One for the ActiveX control I really have to install to browse site Y, AND another message telling me I haven’t installed OpenSearch Search Provider Z.

    Please don’t let sites spam us more. If you’re not going to do it for us, do it for yourself*.

    *) Now I’m really hoping you guys don’t primarily use Firefox at home.

  24. Anonymous says:

    And as a second remark; I fully agree with Peter Byers’ suggestion. Internet Explorer 7’s behavior is less than logical. After closing a tab opened by a site, you want to be brought back.

    Using the suggested option causes the OTHER half of the times I close a tab to bring me to an incorrect tab. The default behavior needs to change. I’ve just tried the suggested solution. It doesn’t cut it.

    No offense intended, I absolutely love IE7.

  25. Anonymous says:

    Hi,

    Sorry to insist on this: can you *please* answer my question:

    1) Is it possible in any way to support a "Google Suggest" kind of search in Search Dropdown of IE7, as Firefox Beta 1 already does with any default and/or custom provider?

    2) If this is not possible in RC1, do you consider to support it for the final release?

    Thank you for your answer,

    António Cruz

  26. PatriotB says:

    "In a JavaScript world, window.external.IsSearchProviderInstalled should be window.external.isSearchProviderInstalled."

    "Also note, that since this isn’t a "Class", the name should start lowercase… like… hmmm, everything else in Javascript…"

    This method isn’t part of JavaScript.  It also isn’t part of any W3C specification that would dictate capitalization.  It’s a proprietary method that can be capitalized however Microsoft wants.

    Remember not everything is a JavaScript world.

  27. Anonymous says:

    This is slightly intrusive. What’s next? The ability for sites to query whether they are bookmarked?

    It would be nice if the wishes of users, as well as providers were heeded, e.g.:

    1. privacy: an option to disable the HTTP_REFERER when the user browses to a different domain (but not subdomain.) (privacy)

    2. privacy and security: an option to omit OS specs from the user agent. There is no reason for a web site to know I am running "Windows NT 5.1; Tablet PC 1.7; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727". This information could be used to mount an attack (e.g., a certain .NET version is known to have vulnerabilities.) If this information is necessary for the execution, say, of an ActiveX control, it should be passed only AFTER the user has clicked "yes."

  28. Anonymous says:

    In the tools menu, it is good to give delete all option in a handy’ Delete Browsing History’ tab. But, it would be more user friendly to exclude passwords from delete all command as it is a big pain in the neck to type them in once delete all command is passed.. A separate confirmation can be asked as in the case of " also delete settings  by add ons".

  29. Anonymous says:

    In the tools menu, it is good to give delete all option in a handy’ Delete Browsing History’ tab. But, it would be more user friendly to exclude passwords from delete all command as it is a big pain in the neck to type them in once delete all command is passed.. A separate confirmation can be asked as in the case of " also delete settings  by add ons".

  30. Anonymous says:

    @Anthony Ortega: You can learn how to correctly determine browser version here: http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/browserdetection.asp

    @António Cruz: No, IE7 will not support "suggest" for the search box.

    @TMaster: Why doesn’t it "cut it"?  How does the behavior you want differ from the behavior when the state of the referenced checkbox is changed?

  31. Anonymous says:

    Hey guys,

    Just remembered something that I’ve been meaning to ask you for a while now in relation to the inline search, but would it possible to include the ability to drag and drop text from the page that you’re in, directly into the search box?  I feel that this would prove to be a very nice convenience feature.

    My other point is slightly unrelated, but it is still something I‘m a little curious about.  With the tabs, I can see that you are able to drag and drop URL’s from a page into them.  However, I find it slightly strange that it appears to open the said URL within the same tab, regardless of where you actually ‘drop’ it (e.g. in any of the other tabs you may have open, or within the new tab icon).  I think that changing this may end up proving useful to the user.  For example, let’s say that you where conducting a web search; it would be nice to be able to open any of the results that interest you in a new tab, simply by dragging them onto the new tab icon.

    Thanks

  32. Anonymous says:

    > "In a JavaScript world, window.external.IsSearchProviderInstalled should be window.external.isSearchProviderInstalled."

    > "Also note, that since this isn’t a "Class", the name should start lowercase… like… hmmm, everything else in Javascript…"

    > This method isn’t part of JavaScript.  It also isn’t part of any W3C specification that would dictate capitalization.  It’s a proprietary method that can be capitalized however Microsoft wants.

    > Remember not everything is a JavaScript world.

    You’ve missed the point. The question is not whether Microsoft is free to do it this way or not — obviously it is. Though the question is if it should be done this way. Given the fact that this *is* JavaScript and that predefined JavaScript and DOM classes are uppercase and methods are lowercase, answering this question is easy.

  33. Anonymous says:

    Here is how can you add custom search engines to IE7 manually through registry.

    http://ankitjain.info/ankit/2006/08/10/custom-search-extension-for-ie7

    Thankx,

    ~ Ankit

  34. Anonymous says:

    Hey guys,

    Just a quick question, but I remember that in your earlier blog you mentioned the possiblity that there may be a second RC release, based upon the feedback you recieved.  I was just wondering if you could give any indication as to your current plans on this.

    I have to say that I for one have been quite looking foward to the opportunity of getting one last chance to provide feedback before the final version is released.

    Thanks.

  35. Xepol says:

    A few thoughts on the recent IE 7 rc1 release (5700.6) and the search box.

    It was revealed that if you press alt-enter instead of enter, your search will be opened in a new tab.  However, when openning a link in a new tab you use ctrl-click.

    This is inconsitant, and I would suggest using ctrl-enter instead of alt-enter to launch searchs from the search box in a new tab.

    Anyone else find themselves reaching for the ctrl key out of habit only to have to backup a page and relaunch the search with alt into a new tab again?

  36. Anonymous says:

    Sorry tohave to use this forum to RANT, and to be off-topic, but I don’t see any progress at all on the feedback issues that I have logged and described over the past 2-3 months.

    I just cannot believe that I have to use Firefox 1.5.06 to save this page in HTML format to my hard disk.

    (http://blogs.msdn.com/ie/archive/2006/08/31/733821.aspx)

    The only reason that I have installed Firefox is that IE7 (all betas i have used, and now IE7 RC1) cannot:

    1. save to disk many (a significant number) of webpages (similar in IE6 – same error message);

    2. IE7 totally stalls, when saving as MHTML format – so often, that i need to run several instances of IE over a session when I really do want to save some pages to disk;

    3. When some pages are saved as MHTML format, would you believe that they cannot be re-read from disk into IE7 RC1 (!!!);

    4. There is no config option to set the default save-to-disk format (eg, as HTML format or as MHTML format).

  37. Anonymous says:

    @Ian Thomas:

    This is related to the bug I entered over a month ago.

    Bug#: 174708

    https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=174708

    The standard comment was received from Microsoft, that IE7 was locked down, and this would be looked at in a further release.

    Unfortunately, the above comment (and similar ones) are auto-applied to almost every bug in the Feedback, so don’t be discouraged, vote for it, and let them know that this is _NOT_ a rendering layout bug, but that it is, like most, a feature functionality bug, where IE7 breaks standard feature functions.

    As you mentioned, saving a page, should just work.  It shouldn’t matter what the page is.  The fact that it is broken, is a major bug, and has nothing to do with the Trident Rendering Engine*.

    [Note to MS]

    * PS Although I understand that IE7 rendering is locked down, I personally feel there are a lot of bad/missing rendering issues with the browser that _SHOULD_ be addressed before locking it down.  Then again, of the 48 bugs I’ve entered, almost all of them have beed defered to a later release, so I’m not holding my breath on having any of the bugs in the DB fixed my IE7 final.

  38. Anonymous says:

    Slightly off topic but nevertheless worth mentionning, for those who like to search within the page displayed without having a window in the way, a little free add-on for IE 5.5 and above:

    http://www.core-services.fr/inline-search/

    Yes, it is a shameless plug but for a free tool 😉

  39. Anonymous says:

    Aaron, This is all working really well but I think it is still missing one thing: It would be so cool if IE displayed the search words in a tool bar. When a word is clicked, a local "find" is performed on the displayed page. I would no longer have any need for the Google Tool Bar.

  40. Anonymous says:

    Hey guys,

    Not to put too fine a point on it, but I was really hoping for some kind of response on whether or not they’ll be an RC2 released, even if it’s some kind of an official response like "unfortunately, at this stage we are unable to divulge details about…..

    Admittedly not ideal, but it would have been better than the question essentially being ignored.

    Thanks

  41. Anonymous says:

    @Serious Sam: At this point, I don’t have details to divulge.  

    RC1 bits will be very close to the RTM release bits, so please provide your feedback on this RC version.  

  42. Anonymous says:

    Hey Microsoft!

    Can you please take my concerns serious and comment on them:

    Can I turn both new features off, please (Registry?)

    I neither want them to know if I have them installed (imagine a warez-side that only allows you to continue on their side until search provider is installed), nor should they be able to put additional adds in it if I use the search bar.

    I don’t want search engines to know that stuff.

    A registry key or group policy please???

  43. Anonymous says:

    Now that the Jet-lag has worn off (all-night flights suck, even when they are first class) I figure it would be the perfect time to blog about my recent visit to Microsoft’s Web Dev Summit.

    A few weeks ago I got an invite from Brian (who thanks to

  44. Anonymous says:

    Yesterday&amp;nbsp;we had Cyra Richardson – Lead Program Manager on the Internet Explorer team&amp;nbsp;- in…

  45. Anonymous says:

    However, the 7100i is arguably the most business- conscious device in the 7100- series. Not only does it support secure email access that consumers have come to expect from RIM, but the BlackBerry 7100i also provides push- to- talk technology and full-