Javascript iFrame在函数execute(以及从DOM中删除/添加)时丢失其名称

Javascript iFrame在函数execute(以及从DOM中删除/添加)时丢失其名称,javascript,dom,iframe,Javascript,Dom,Iframe,我正在使用一个iframe,它可以根据需要从页面中添加和删除。iframe包含从父文档调用的javascript代码 我发现iframe“失去了它的名称”,导致它不再可以使用以下内容寻址: window.frames['iframename'].function() 一旦函数第一次被调用,并且iframe被删除并再次添加,就会发生这种情况。无论添加和删除iframe多少次,我都可以至少调用该函数一次,如果我不删除iframe,我也可以多次调用它-但一旦调用了该函数,并且删除并随后添加了ifra

我正在使用一个iframe,它可以根据需要从页面中添加和删除。iframe包含从父文档调用的javascript代码

我发现iframe“失去了它的名称”,导致它不再可以使用以下内容寻址:

window.frames['iframename'].function()
一旦函数第一次被调用,并且iframe被删除并再次添加,就会发生这种情况。无论添加和删除iframe多少次,我都可以至少调用该函数一次,如果我不删除iframe,我也可以多次调用它-但一旦调用了该函数,并且删除并随后添加了iframe,尝试调用该函数就会触发未定义该函数的错误

我已经能够通过按索引处理iframe来解决这个问题,例如:

window.frames[2].function()
但我不喜欢这种“硬编码”


为什么会发生这种情况?在不使用iframe的索引的情况下调用iframe中的函数的最佳方法是什么?

您可以通过隐藏iframe而不是将其从页面中删除来纠正此问题

每次要删除iframe时,只需设置

document.getElementById'iframename'。style.display='none'

每次你想添加它时,你都可以使用

document.getElementById'iframename'.style.display='block'

这将是你喜欢的

然后可以将iframe添加到javascript变量中,并使用该变量调用函数:

var myFrame = window.frames['iframename'];
myFrame .function()

只考虑在iFrAMP放置之后添加这个JavaScript代码。