Javascript 如何在单击事件上添加focus()和设置占位符文本

Javascript 如何在单击事件上添加focus()和设置占位符文本,javascript,Javascript,我正在将事件侦听器添加到我的搜索图标,以侦听“单击”事件,然后在触发时调用一个函数,将焦点添加到元素并将占位符属性更改为“输入搜索词…”。当前,单击图标时,输入显示为焦点,但没有占位符文本。我错过了什么 window.onload = function() { var el = document.getElementById('gsc-i-id1'); el.setAttribute('placeholder', 'Enter your search term.

我正在将事件侦听器添加到我的搜索图标,以侦听“单击”事件,然后在触发时调用一个函数,将焦点添加到元素并将占位符属性更改为“输入搜索词…”。当前,单击图标时,输入显示为焦点,但没有占位符文本。我错过了什么

 window.onload = function() {
        var el = document.getElementById('gsc-i-id1');
        el.setAttribute('placeholder', 'Enter your search term...');
        el.style.background = '';
        el.style.textIndent = '0';
        el.addEventListener('blur', function(e) {
            e.target.style.backgroundImage = 'none';
            e.target.style.textIndent = '0';
            }, false );

        var searchIcon = document.getElementById('search-icon');
        searchIcon.addEventListener('click', function(e) {
                e.preventDefault();
                el.focus( function() {
                el.setAttribute('placeholder', 'Enter your search term...');
                });
            }, false );
        };

你用的是什么浏览器?IIRC,即(至少11个,不知道“边缘”)将在字段收到焦点后立即隐藏占位符。(不过Chrome做到了这一点。)

一个原因可能是
输入
字段的现有值模糊了占位符文本(占位符应该只有在字段中没有文本时才可见)。以下是来自Google自定义搜索的输入:``看起来可能是的重复。另请参见和。这两项都没有解决我面临的问题。另外,内容已经过时,我没有使用jQuery。(即使我是,这些话题也不相关)我正在使用Chrome。