我有一个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);
}
}