0

我在 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 时才出现在代码中

4

1 回答 1

0

如果没有用于访问子 DOM 的全局方法,则无法从父框架中操作 iframe 的内容。这里有一个适合您需要的答案,但我将复制以下内容以供参考:

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

于 2013-02-19T22:07:10.290 回答