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