Google 自定义搜索 - 如何修改结果的文本?
Google Custom Search - How to modify results' text?
我在我的网站上使用 Google 自定义搜索,如果可能,我想使用 Javascript 修改结果的文本。
这就是问题所在。
每个页面的标题都具有以下结构:“SITENAME - TITLE OF THE PAGE”。我想从搜索结果的文本中删除“SITENAME - ”。
这是我写的JS代码,但是不行:
var elem = document.getElementById("search"); // Search results wrapper
var y = elem.getElementsByTagName("div");
for (var i=0; i < y.length; i++) {
str = y[i].className;
if (str.search("gs-title") != 0 ) {
var newHTML = y[i].innerHTML;
newHTML = newHTML.replace("SITENAME - ", "");
y[i].innerHtml = newHTML;
}
}
有什么建议吗?提前致谢。
已更新 (2020-08-27)
这是解决方案,为此我要感谢 mplungjan 和 Andy:
Callback = () => {
[...document.querySelectorAll(".gs-title")].forEach(el => {
el.innerHTML = el.innerHTML.replace(/SITENAME - /, "");
});
};
window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
web: {
rendered: "Callback",
},
};
你打错了 y[i].innerHtml
它应该是 innerHTML - 这是一个较短的版本
[...document.querySelectorAll("#search div.gs-title")].forEach(div => {
let html = div.innerHTML;
console.log(html) // does this actually show sitename?
div.innerHTML = html.replace(/SITENAME - /g,"");
})
查看 API 提供的回调:https://developers.google.com/custom-search/docs/element#search-time-callbacks
我在我的网站上使用 Google 自定义搜索,如果可能,我想使用 Javascript 修改结果的文本。
这就是问题所在。
每个页面的标题都具有以下结构:“SITENAME - TITLE OF THE PAGE”。我想从搜索结果的文本中删除“SITENAME - ”。
这是我写的JS代码,但是不行:
var elem = document.getElementById("search"); // Search results wrapper
var y = elem.getElementsByTagName("div");
for (var i=0; i < y.length; i++) {
str = y[i].className;
if (str.search("gs-title") != 0 ) {
var newHTML = y[i].innerHTML;
newHTML = newHTML.replace("SITENAME - ", "");
y[i].innerHtml = newHTML;
}
}
有什么建议吗?提前致谢。
已更新 (2020-08-27)
这是解决方案,为此我要感谢 mplungjan 和 Andy:
Callback = () => {
[...document.querySelectorAll(".gs-title")].forEach(el => {
el.innerHTML = el.innerHTML.replace(/SITENAME - /, "");
});
};
window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
web: {
rendered: "Callback",
},
};
你打错了 y[i].innerHtml
它应该是 innerHTML - 这是一个较短的版本
[...document.querySelectorAll("#search div.gs-title")].forEach(div => {
let html = div.innerHTML;
console.log(html) // does this actually show sitename?
div.innerHTML = html.replace(/SITENAME - /g,"");
})
查看 API 提供的回调:https://developers.google.com/custom-search/docs/element#search-time-callbacks