﻿# 如何手動新增 IE7 的搜尋提供者

我電腦的 IE7 不知從何時開始變的無法新增「搜尋提供者(Search Provider)」（如下圖示），導致我就只能使用內建的 Live Search 搜尋而已。

![IE7 Search Provider](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/51c61af131d4d1fef985-image_6.png)

當我點進去之後點擊 "Google" 後，竟然出現「**元素找不到**」的錯誤訊息：

[![IE7 Add Search Provider](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/f8db441ce6ee6a1b7939-image_thumb_3.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/09f69de81597e0f5fdb3-image_10.png)

再進一步探究之後，發現原來我的 IE7 根本不支援 **window.external.AddSearchProvider** 方法（但以前是支援的），導致無法執行任何加入搜尋提供者的動作。

一個簡單的測試方法就是在瀏覽器的**網址列**輸入以下 JavaScript 程式執行，果然得到相同的錯誤訊息：

```
javascript:alert(window.external.AddSearchProvider);
```

這問題困擾我許久，逼的我自己去找註冊檔的設定位置，手動新增搜尋提供者到 IE7 中。剛查到機碼的位置如下：

```
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes
```

若要新增自己的搜尋提供者，必須在此機碼下新增一個以 GUID 為命名的機碼，至於 GUID 的取得可以到 [Online GUID Generator](http://www.guidgenerator.com/) 網站建立一筆，並將機碼名稱指定為 **{** + **GUID** + **}**，例如：

```
{c017e7fa-0c2a-48a2-8dc2-159d92da2a11}
```

然後，在剛新增的機碼內再新增兩個「字串值」：

1\. **DisplayName**

    這裡要設定顯示在 IE7 搜尋列選項的名稱

2\. **URL**

    這裡要設定搜尋時的網址，並在搜尋關鍵字的地方代入 {searchTerms} 這個特殊變數。

例如你若要設定 Google Experiment Search 作為你的搜尋條件，你先進 Google 搜尋 **TEST** 關鍵字，並得到以下網址：

```
http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q=TEST&lr=
```

然後再將網址中的 **TEST** 字樣替換成 {searchTerms} 這個特殊變數，並設定到 URL 這個字串值中即可：

```
http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q={searchTerms}&lr=
```

最後，重新啟動 IE7 就可以看的到手動加入的搜尋提供者項目了。你也可以手動將剛剛新增的搜尋提供者設為預設值。

另外我將機碼匯出目前的結果如下，直接另存為 \*.reg 檔 Double Click 也可以快速設定完成：

```
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes]
"DefaultScope"="{382d0202-fa06-4a6f-b60d-1c2f16f5afca}"
"Version"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{382d0202-fa06-4a6f-b60d-1c2f16f5afca}]
"DisplayName"="Google"
"URL"="http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q={searchTerms}&lr="

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{49450FD3-A265-4946-9045-9C49276C4566}]
"DisplayName"="Live Search"
"URL"="http://search.live.com/results.aspx?q={searchTerms}&mkt=zh-tw&FORM=IEFM&src={referrer:source?}"
```

**相關連結**

-   [AddSearchProvider Method (window, external)](http://msdn.microsoft.com/en-us/library/aa744112.aspx)
