這個(gè)問題,試過了很多種辦法,比如一開始的使用autofocus屬性、到后來使用ref指令,然后通過this.$refs.inputBox.focus(),再者后來的自定義指令然后在input元素上使用v-focus,但是,這些辦法都是不行的(這里可能是因?yàn)槲易约簩戝e了)。查找原因,終于知道原來是因?yàn)閕os的安全機(jī)制問題,它需要用戶點(diǎn)擊才能觸發(fā)聚焦。(這是一大坑)
那怎么解決呢:???
那就是除非給用戶一個(gè)類似按鈕的地方,讓用戶點(diǎn)擊后使用js觸發(fā)焦點(diǎn)。(那應(yīng)該首頁與搜索頁的頁面是在同一個(gè)頁面,而不是兩個(gè)頁面)
今天看vue官方文檔,看到了這個(gè)問題得解決辦法
directives: {
focus: {
// 指令的定義, 當(dāng)被綁定的元素插入到 DOM 中時(shí)……
inserted: function (el) {
el.focus()
}
}
}
<input v-focus>