Ontem, modifiquei a página EPG na caixa de configuração e encontrei um pequeno problema. Quando os usuários compram jogos, uma caixa de diálogo de confirmação de compra precisa aparecer. O foco padrão da caixa de diálogo deve estar no botão "Cancelar". É um requisito muito simples e pode ser alcançado usando o método focus () do JavaScript. Exemplos de código simples são os seguintes:
Document.getElementById ("Cancelar"). Focus ()Mas o mais difícil é que a caixa de decâmar é realmente um grande poço. Como é compatível com todos os modelos de caixa de configuração existentes, 8 caixas de capa precisam ser adaptadas. Então surgiu um problema! Uma caixa de ajuste do ZTE B600 não pode definir o foco para o botão Cancelar. Aqui estão minhas soluções:
Primeiro, confirme se a caixa de configuração suporta o método getElementById () e se obteve com sucesso o elemento com o ID "Cancelar": o método de teste é muito simples. Eu escrevi diretamente outro <p id = "test"> test </p> e depois obtive o elemento com o id "teste" no mesmo local e realizei um documento de operação simples.getElementById ("teste"). Innerhtml = "Hello"
Finalmente, eu usei "Tente ... Catch (e) ..." Para pegar o motivo pelo qual "foco ()" falhou
try () {<span style = "espaço branco: pre"> </span> document.getElementById ("cancel"). focus ()} catch (e) {<span style = "white-space: pré"> </span> alerta (e.name + ":" + e.what ()); }Mas é simplesmente estranho! Os resultados das duas etapas acima mostram que a caixa de configuração suporta focus () e getElementById (), mas simplesmente não pode definir o foco na caixa de diálogo pop-up.
Depois de mais de uma hora de luta, o grande chefe finalmente apareceu, e ele resolveu o problema com apenas uma frase simples! É possível chamar ativamente de flur () para cancelar o foco original!
document.getElementById ("compra"). Flur ()Então o problema foi resolvido. Eu tenho que expressar meus sentimentos! No processo de resolver esse problema, minhas próprias idéias são realmente corretas, mas meu conhecimento obviamente não é suficiente. A diferença entre programadores em geral e programadores seniores não é apenas sobre resolver problemas, mas também sobre experiência e conhecimento!