【发布时间】:2019-06-11 17:54:19
【问题描述】:
我有一个使用 document.querySelector() 从 div/span 元素中检索文本内容的 javascript - 这些是动态加载的。例如,用户名在 DOM 中始终可用。当用户上线时,会创建一个额外的 span,指示他当前登录的 IP 地址;一旦用户退出,它就会消失。
因此,当 IP 位置元素在 DOM 中不可用时,console.log 不会打印任何内容 -
function f(){
try{ b=document.querySelector("#main > header > div>div>span").textContent,
name=document.querySelectorAll("#main > header > div>div>div>span")[1].textContent
}catch(e){return}
console.log(name + ", " + b)}
interval=setInterval(f,1000);
我想捕捉用户每次登录,并触发IP定位元素显示;或者我想编写 if 条件来检查 IP 位置范围是否已在 DOM 中创建。 请注意,该脚本还运行 setInterval() 来检查用户何时在线。
【问题讨论】:
-
querySelector()返回null如果没有找到元素,如文档所述。只需在读取元素的属性之前检查该值即可。 -
我已经尝试过这种方法,但是 null 条件不评估,代码永远不会进入这部分;我假设是因为 span 元素在 DOM 中尚不可用
-
试试 MutationObserver developer.mozilla.org/en-US/docs/Web/API/MutationObserver
标签: javascript dom