您可以通过使用 MutationObserver 查看结果 HTML 代码来确定搜索结果已更改。
// Where to put search results
var resultsElement = document.getElementById('results');
// Creating results box
window.google.search.cse.element.render({
div: resultsElement,
tag: 'searchresults-only',
attributes: {
overlayResults: false
}
});
// Watching the "new results" event
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
new MutationObserver(function(mutations) {
for (var i = 0; i < mutations.length; ++i) {
if (mutations[i].target.classList.contains('gsc-results')) {
console.log('Search complete!');
break;
}
}
}).observe(resultsElement, {
subtree: true,
attributes: false,
childList: true,
characterData: false
});
它和 V1 的搜索完成回调一样好用。旧浏览器不支持MutationObserver
,但您可以使用polyfill来启用它。