javascript - IFrame appendChild 页面加载后缺少孩子
问题描述
我有一个动态加载内容的 IFrame,一旦加载了内容,我需要在内容之后添加几个 div。有两个问题我解决不了。
一、AddIFrameIncludes被调用了两次(addEventListener只被调用了一次)。
二,当我在 appendChild 之后调试和停止时,我可以看到新的 div 已添加到 IFrame(两次),但是当我允许代码完成并检查 iframe 时,新的 div 不再存在。
<iframe id="helpBody" class="content" name="topic" frameborder="0" style="display: block;" src="LandingPage.html"></iframe>
LFANavi.AddIFrameIncludes = function () {
makeRequest('GET', 'iFrameIncludes.html')
.then(function (data) {
let myIFrame = document.getElementById("helpBody");
if (myIFrame) {
let newDiv = document.createElement("DIV");
newDiv.innerHTML=data.responseText;
myIFrame.contentDocument.getElementsByTagName("body")[0].appendChild(newDiv);
}
})
}
LFANavi.SetIFrame = function (fileName) {
let myIFrame = document.getElementById("helpBody");
if (myIFrame) {
myIFrame.removeEventListener("load", LFANavi.AddIFrameIncludes()); //Should I do this?
myIFrame.addEventListener("load", LFANavi.AddIFrameIncludes(), true);
myIFrame.contentWindow.focus();
myIFrame.setAttribute('src', fileName);
}
}
解决方案
推荐阅读
- c - 如何在 C 中正确打印变量?
- c# - 如何将数据加载到面板
- c# - 用错误的数据类型加载数据
- javascript - 如何实现“return true;”?错误:“消息端口在收到响应之前关闭。”
- jenkins - 无法将命名空间参数传递给 Jenkins 的 kubernetes-cli 插件
- c# - Automapper:如何在字典中映射层次结构
- algorithm - 证明或反驳 n³=theta(n²)
- sql-server - 尝试使用 PowerShell 将 XML 文件导入 MS SQL 表
- relational-database - 关系代数谓词求值
- n1ql - 在一个 N1QL (Couchbase) 中使用 Set 和 Unset