【发布时间】:2020-07-27 11:24:41
【问题描述】:
考虑有一些超链接标签使 API 调用后端。
示例:
<a href="/get/contact-info/" id="ember107" >Contact info </a>
后端 API 调用完成后,它将触发/打开该页面中的弹出窗口。
弹出数据:(示例一个 div 数据)
<div id="ember"> <h1 id="pv-contact-info"> Contact Name</h1></div>
我的目标是从此弹出窗口(标签上方)中提取数据。让我们说来自 h1 标记的联系人姓名。
到目前为止我尝试了什么:
let atag = document.getElementById("ember107");
atag.addEventListener('click', () => {
document.getElementById("pv-contact-info").innerText; // getting from popup h1 tag
});
atag.click(); // explicit click
我遇到的问题是Uncaught TypeError: Cannot read property 'click' of null当这个语句执行时document.getElementById("pv-contact-info").innerText;
我知道问题是弹出内容没有完全加载,这就是代码 document.getElementById("pv-contact-info") 返回 null 的原因。
我的问题是是否有任何监听函数来检查弹出内容是否加载 完全或者我们可以用另一种方法来做到这一点。最好使用浏览器支持 /vanilla javascript 而不是库。
【问题讨论】:
-
document.getElementById("pv-contact-info").innerText;实际上什么也没做 -
如果您有多个 id="ember107" 的链接,您的代码也会失败。我猜你需要委托,但你的代码不够详细,我无法确定
-
atag是如何生成的?你的 JS 叫什么名字? -
那么模态在加载时是否有事件?大多数图书馆都有。
-
@mplungjan 例如,我提到了这个带有 id 的单个标签。我的目标是从弹出窗口中获取数据。一旦它完全加载。我怎么知道它是否加载了?
标签: javascript html dom-events