我在Google自定义搜索脚本的末尾添加了以下代码:
window.onload = function(){
document.getElementById('gsc-i-id1').placeholder = 'Search';
};
将占位符单词“搜索”放在除Microsoft Edge之外的所有主流浏览器的搜索框中都可以。
Edge返回以下错误:
SCRIPT5007:无法设置未定义或空引用的属性“占位符”。
我尝试了一些调整来解决此问题,但是没有运气...
更新:这是一个修复程序,直到Microsoft修复此错误:
setTimeout(function(){
document.getElementById('gsc-i-id1').placeholder = 'Search';
}, 500);
答案 0 :(得分:0)
问题是在脚本运行以创建load
之前,在Edge中触发了gsc-i-id1
事件。由于该元素尚不存在,因此设置占位符的调用最终在null
而不是实际元素上运行,从而导致错误。
一种快速的解决方法是检查该元素是否还存在,如果不存在,请在超时后再次检查。
理想情况下,您将文本设置为搜索框配置的一部分。我目前在https://developers.google.com/custom-search/docs/ui#elements_searchbox的文档中没有将此选项视为选项,但是您可以在此处提交功能请求以寻求帮助。有了这样的选择,既可以避免时序依赖性,又可以防止脚本的损坏(如果将来元素的id更改)。