最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2011年05月09日 23:17:36   作者:  
我很喜歡在 google.cn/music 上找 mp3, 因為谷歌音樂在版權方面, 用戶體驗和搜索功能都做得很好. 但是它的搜索欄提示功能一直存在一個小問題, bug 存在半年以上了吧

問題描述

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

谷歌音樂搜索欄的 bug

導致原因

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

以下是我根據(jù)自己的理解反編譯出來的 JS 代碼, 頁面在 onload 的時候將會執(zhí)行 m.hint.initHint 方法為搜索框添加提示功能.

復制代碼 代碼如下:

/**
* 為搜索框添加提示功能
* @param searchTip 提示信息
* @param searchBoxId 搜索輸入框 ID
* @param hideBoxId 關鍵字隱藏框 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é)點加載和 JavaScript 初始化之間的時間. 可以在搜索框加載完成后立刻執(zhí)行 JS, 反正 Google 自己的產(chǎn)品也不需要 SEO. 當然, 最好在 DOM ready 的時候執(zhí)行.

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

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

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

相關文章

最新評論

尼勒克县| 徐州市| 神木县| 仁布县| 简阳市| 迭部县| 都昌县| 衡阳县| 梁平县| 长治市| 盖州市| 敦化市| 诸暨市| 四平市| 北辰区| 呈贡县| 临城县| 鞍山市| 松桃| 萝北县| 林口县| 安平县| 壤塘县| 新余市| 滦南县| 罗田县| 长兴县| 略阳县| 临清市| 伊金霍洛旗| 延边| 澄江县| 宝山区| 华亭县| 内乡县| 榆社县| 合川市| 新巴尔虎右旗| 休宁县| 自贡市| 平安县|