我在iframe里面有一个iframe,我想用这个代码来改变图像的src
window.top.frames[0].frames[0].document.getElementById("maquina").src = "https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png";
当我尝试它时,它工作,但我看不到页面中的更改,只有在e读取.src时的代码中 那个元素
答案 0 :(得分:0)
如果没有用于访问子DOM的全局方法,则无法在父框架内操纵iframe的内容。答案Here符合您的需求,但我会在下面复制以供参考:
在子iframe中:
parent.childGetElementById = function (id) {return document.getElementById(id);}
parent.childLoaded();
在父母:
function childLoaded() {var dom = childGetElementById('someid');}
假设您实际上可以访问子页面,我建议您不要使用iframe来修改您的设计。
[回答评论]
这取决于你是使用直接HTML还是脚本语言(如PHP)。如果是纯HTML,则可以使用服务器端包含
<!-- #include virtual="path/to/included/file.html" -->
在PHP中,您可以包含这样的页面
require('/real/path/to/included/file.php');
不要误解我的意思,iFrame在某些特定情况下很有用(绕过跨域原始策略,oAuth实现等);他们经常被滥用而不是正确使用。