我正在尝试在html中寻找一个元素,但是除非我重新加载页面(使用spa),否则它将返回空。我仅在文档完成时才调用该函数,所以我不明白为什么它不起作用
page.vue
mounted(){
documentIsComplete(() => {
this.myFunction()
})
},
methods:{
myFunction(){
const elements= document.getElementsByClassName("someClass")
console.log(elements)
}
function.js
const documentIsComplete= callback => {
if (document.readyState === 'complete') {
callback()
} else {
window.addEventListener('load', () => {
callback()
})
}
}
export default documentIsComplete
我的猜测是,当您运行检查时,DOM根本就不存在,您可以将myFunction包装在500ms的setTimeout中(不是要解决此问题,而是要确保它不是计时问题)。