一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

谷歌音樂搜索欄的提示功能php修正代碼

問題描述

在加載頁面的時候, 將光標(biāo)快速定位到搜索欄上, 待頁面加載完成, 搜索欄進(jìn)行初始化后會顯示搜索提示. 此時輸入的任何內(nèi)容將成為搜索提示的一部分而不是搜索關(guān)鍵字. 截圖如下:

谷歌音樂搜索欄的 bug

導(dǎo)致原因

搜索欄的 JavaScript 初始化執(zhí)行在 onload 的時候. 因?yàn)轫撁鎴D片請求多, 完全加載需要 3 秒鐘左右, 并且搜索欄的 tabindex 被設(shè)為 1, 搜索優(yōu)先的用戶很容易就能遇到.

以下是我根據(jù)自己的理解反編譯出來的 JS 代碼, 頁面在 onload 的時候?qū)?zhí)行 m.hint.initHint 方法為搜索框添加提示功能.
復(fù)制代碼 代碼如下:
/**
* 為搜索框添加提示功能
* @param searchTip 提示信息
* @param searchBoxId 搜索輸入框 ID
* @param hideBoxId 關(guān)鍵字隱藏框 ID
*/
m.hint.initHint = function(searchTip, searchBoxId, hideBoxId){
var searchBox = document.getElementById(searchBoxId);
var hideBox = null;
if(searchBox){
if(hideBoxId) {
hideBox = document.getElementById(hideBoxId);
}
l.events.listen(searchBox, "blur", l.bind(m.hint.onInputBlur, null, searchBox, hideBox), false);
l.events.listen(searchBox, "focus", l.bind(m.hint.onInputFocus, null, searchBox, hideBox), false);
if(hideBox){
l.events.listen(searchBox, "change", bind(m.hint.onInputChange, null, searchBox, hideBox), false);
hideBox.value = m.hint.getInputValue(searchBox);
}

// 在這里將搜索提示賦給臨時變量
m.hint.Gh[searchBox] = searchTip;
// 如果搜索框存在, 則為搜索框加上臨時變量和灰色字的 class
m.hint.onInputBlur(searchBox);
}
};

m.hint.onInputBlur = function(searchBox, hideBox) {
m.hint.fi(searchBox);
hideBox && m.hint.onInputChange(searchBox, hideBox);
};

m.hint.fi = function(searchBox) {
if(searchBox) {
var searchTip = m.hint.Gh[searchBox];
if(searchTip && (searchBox.value.trim()=="" || searchBox.value==searchTip)) {
searchBox.setAttribute(m.hint.IS_HINT, "1");
searchBox.className += " hint";
searchBox.value = searchTip;
}
}
};

解決辦法
縮短搜索框 DOM 節(jié)點(diǎn)加載和 JavaScript 初始化之間的時間. 可以在搜索框加載完成后立刻執(zhí)行 JS, 反正 Google 自己的產(chǎn)品也不需要 SEO. 當(dāng)然, 最好在 DOM ready 的時候執(zhí)行.

擴(kuò)展知識
記得我寫過一篇文章, 介紹如何在 WordPress 搜索框添加文字提示. 我的處理辦法簡單粗暴, 僅以框內(nèi)關(guān)鍵字來判斷是關(guān)鍵字還是提示信息. (所以我的提示信息很長)

在分析這個案例的過程中, 我發(fā)現(xiàn) Google 的處理辦法很好, 可以借鑒和使用. 它通過隱藏輸入框來放置真正的搜索信息, 所以可以實(shí)現(xiàn)完全關(guān)鍵字和提示文案的區(qū)分.

后話
這個小問題已經(jīng)困擾我很久了 (幾乎每次遇到), 今天終于忍不住看了一下代碼, 希望 Google 的工程師能夠看到本文快速解決掉. (修改建議我都給出來了, 還不改也說不過去吧)

php技術(shù)谷歌音樂搜索欄的提示功能php修正代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产福利精品视频 | 综合网女女网 | 视频一区亚洲 | 久久亚洲精品国产精品婷婷 | 国产乱子伦视频大全 | 青青草久热精品视频在线观看 | 91国视频| 手机成人在线视频 | 2021国产精品 | 91免费永久国产在线观看 | 日本加勒比网站 | 亚洲性激情 | 欧美日韩精品乱国产 | 大香伊人久久精品一区二区 | 国产综合色在线视频区色吧图片 | 亚洲人的天堂男人爽爽爽 | 亚洲一区免费视频 | 成年美女黄网站色大片软件 | 在线视频亚洲一区 | 欧美太黄太色视频在线观看 | 2020年国产精品午夜福利在线观看 | 亚洲国产99在线精品一区二区 | 91精品国产91久久久久 | 成人福利网站在线看视频 | 久久精品国产清白在天天线 | 久久久久中文字幕 | 日本高清午夜色wwwσ | 久久亚洲精品中文字幕亚瑟 | 国产中日韩一区二区三区 | 国产一区在线视频 | 视频三区精品中文字幕 | 国产一久久香蕉国产线看观看 | 91亚洲精品 | 91大神精品长腿在线观看网站 | 色视频在线观看在线播放 | 精品免费福利视频 | 免费亚洲一区 | 亚洲国产成人精品女人久久久 | 福利精品视频 | 伊人精品视频在线观看 | 国产精品天天看特色大片不卡 |