在加載頁面的時候, 將光標快速定位到搜索欄上, 待頁面加載完成, 搜索欄進行初始化后會顯示搜索提示. 此時輸入的任何內容將成為搜索提示的一部分而不是搜索關鍵字. 截圖如下:
導致原因
搜索欄的 JavaScript 初始化執行在 onload 的時候. 因為頁面圖片請求多, 完全加載需要 3 秒鐘左右, 并且搜索欄的 tabindex 被設為 1, 搜索優先的用戶很容易就能遇到.
以下是我根據自己的理解反編譯出來的 JS 代碼, 頁面在 onload 的時候將會執行 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; 
} 
} 
}; 
新聞熱點
疑難解答