Iframe里面的iframe不能改变

时间:2013-02-19 22:01:57

标签: javascript

我在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时的代码中 那个元素

1 个答案:

答案 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实现等);他们经常被滥用而不是正确使用。