1 回答
TA贡献1818条经验 获得超11个赞
“他们从哪里获得这些数据?”
通过查看扩展程序的源代码,此 URL:
https://google.com/complete/search?client =firefox&hl=en&q=foo
它与 Google 在其搜索页面上使用的 API 相同。但该 API 受CORS 策略保护,因此无法从任何网页访问。浏览器扩展可以,因为它被授予了更多权限。要使用它,您需要一台代理服务器(可以是您自己的,也可以是免费的,如下例中的服务器)。
const searchInput = document.getElementById('search'),
suggestionsList = document.getElementById('suggestions');
searchInput.addEventListener('input', autocomplete);
autocomplete();
function autocomplete() {
const q = searchInput.value;
const proxy = 'https://cors-everywhere.herokuapp.com/';
fetch(`${proxy}https://google.com/complete/search?client=firefox&hl=en&q=${q}`, {
headers: { origin: 'google.com' }
})
.then(res => res.json())
.then(res => {
suggestionsList.innerHTML = res[1].map(x => `<li>${x}</li>`).join('')
});
}
<input id="search" value="foo" />
<ul id="suggestions"></ul>
添加回答
举报