谷歌音乐搜索栏的提示功能php修正代码_PHP
问题描述
在加载页面的时候, 将光标快速定位到搜索栏上, 待页面加载完成, 搜索栏进行初始化后会显示搜索提示. 此时输入的任何内容将成为搜索提示的一部分而不是搜索关键字. 截图如下:
导致原因
搜索栏的 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;
}
}
};
解决办法
缩短搜索框 DOM 节点加载和 JavaScript 初始化之间的时间. 可以在搜索框加载完成后立刻执行 JS, 反正 Google 自己的产品也不需要 SEO. 当然, 最好在 DOM ready 的时候执行.
扩展知识
记得我写过一篇文章, 介绍如何在 WordPress 搜索框添加文字提示. 我的处理办法简单粗暴, 仅以框内关键字来判断是关键字还是提示信息. (所以我的提示信息很长)
在分析这个案例的过程中, 我发现 Google 的处理办法很好, 可以借鉴和使用. 它通过隐藏输入框来放置真正的搜索信息, 所以可以实现完全关键字和提示文案的区分.
后话
这个小问题已经困扰我很久了 (几乎每次遇到), 今天终于忍不住看了一下代码, 希望 Google 的工程师能够看到本文快速解决掉. (修改建议我都给出来了, 还不改也说不过去吧)

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











DeepSeek은 강력한 정보 검색 도구입니다.이 장점은 정보가 느리고 결과 프레젠테이션 방법이 간단하며 데이터베이스 적용 범위는 제한되어 있다는 것입니다 .

DeepSeek은 특정 데이터베이스 나 시스템에서만 더 빠르고 정확한 독점 검색 엔진입니다. 이를 사용할 때 사용자는 문서를 읽고, 다양한 검색 전략을 시도하고, 사용자 경험에 대한 도움을 요청하고 사용자 경험에 대한 피드백을 최대한 활용하는 것이 좋습니다.

이 기사에서는 GATE.IO (GATE.IO) 웹 버전의 등록 프로세스와 GATE 트레이딩 앱의 등록 프로세스를 소개합니다. 웹 등록 또는 앱 등록이든, 공식 웹 사이트 또는 App Store를 방문하여 Genuine 앱을 다운로드 한 다음 사용자 이름, 암호, 이메일, 휴대 전화 번호 및 기타 정보, 완전한 이메일 또는 휴대 전화 확인을 작성해야합니다.

Bybit Exchange 링크를 직접 다운로드하고 설치할 수없는 이유는 무엇입니까? Bybit은 사용자에게 거래 서비스를 제공하는 암호 화폐 거래소입니다. Exchange의 모바일 앱은 다음과 같은 이유로 AppStore 또는 GooglePlay를 통해 직접 다운로드 할 수 없습니다. 1. App Store Policy는 Apple과 Google이 App Store에서 허용되는 응용 프로그램 유형에 대한 엄격한 요구 사항을 갖지 않도록 제한합니다. Cryptocurrency Exchange 응용 프로그램은 금융 서비스가 포함되며 특정 규정 및 보안 표준이 필요하기 때문에 이러한 요구 사항을 충족하지 않습니다. 2. 법률 및 규정 준수 준수 많은 국가에서 암호 화폐 거래와 관련된 활동이 규제되거나 제한됩니다. 이러한 규정을 준수하기 위해 BYBIT 응용 프로그램은 공식 웹 사이트 또는 기타 공인 채널을 통해서만 사용할 수 있습니다.

앱을 다운로드하고 계정의 안전을 보장하기 위해 공식 채널을 선택하는 것이 중요합니다.

로그인 단계 및 암호 복구 프로세스를 포함하여 참깨 오픈 exchange 웹 버전의 로그인 작업에 대한 자세한 소개는 로그인 실패, 페이지를 열 수 없으며 플랫폼에 부드럽게 로그인 할 수없는 일반적인 문제에 대한 솔루션을 제공합니다.

Binance 웹 사이트 로그인 포털의 최신 버전에 액세스하려면 다음을 수행하십시오. 공식 웹 사이트로 이동하여 오른쪽 상단의 "로그인"버튼을 클릭하십시오. 기존 로그인 방법을 선택하십시오. 새 사용자 인 경우 "등록하십시오. 등록 된 휴대폰 번호 또는 이메일 및 비밀번호를 입력하고 완전한 인증 (예 : 모바일 확인 코드 또는 Google 인증 자). 성공적인 확인 후 Binance 공식 웹 사이트 로그인 포털의 최신 버전에 액세스 할 수 있습니다.

이 기사에서는 Binance, OKX, Gate.io, Bitflyer, Kucoin, Bybit, Coinbase Pro, Kraken, Bydfi 및 Xbit DencentRalized Exchanges를 포함하여주의를 기울여야 할 상위 10 개의 Cryptocurrency 거래 플랫폼을 권장합니다. 이 플랫폼은 거래 통화 수량, 거래 유형, 보안, 규정 준수 및 특수 기능 측면에서 고유 한 이점이 있습니다. 예를 들어 Binance는 전 세계 최대의 거래량과 풍부한 기능으로 유명합니다. 적절한 플랫폼을 선택하려면 자체 거래 경험, 위험 허용 범위 및 투자 선호도를 기반으로 포괄적 인 고려 사항이 필요합니다. 이 기사가 자신에게 가장 적합한 것을 찾는 데 도움이되기를 바랍니다.
