8

我有一个 iframe,它可以上传图片,给人一种 Ajax 上传的错误感觉。

这个 iframe 的内容有 javascript 检查各种事情并发送状态。几乎把它看作是一份进度报告。无论如何,包含 iframe 的页面是显示数据的页面,而不是显示数据的页面,所以我想从 iframe 中更改父页面上的数据。这是我的代码:

<div id="iframe_response"></div>
<iframe style="border:none" src="someurl" width="100%" height="350px" id="iframe"></iframe>

这是我在 iframe 中的 jQuery:

$('#iframe_response', "#iframe").append('this should go there but it\'s not...');

但是,它不会向该 div 写入任何内容。我已经在 document.ready 上调用了它,但是唉......

我究竟做错了什么?

4

4 回答 4

11

使用parent.document而不是window.parent.document

$(parent.document).find('#whatever')
于 2015-01-01T15:22:18.373 回答
5

这就是答案!刚开始有点混乱,但真的很容易!

假设同源策略没有问题,您可以使用 parent.document 来访问元素并操作它们。

演示:这里
iframe 外部:这里
iframe 内部:这里

希望这会有所帮助,我花了相当多的时间为您解决这个问题,所以我很乐意支持我的答案!

干杯,香农

于 2012-09-18T12:40:40.913 回答
1

我遇到了同样的问题,上述解决方案(jquery)都没有为我工作。

经过一些试验和错误,这对我有用:

(但请注意,这仅在父级也支持 Jquery 时才有效)

window.parent.$('#iframe_response').html('this should go there but it\'s not...');
于 2014-06-30T08:43:01.373 回答
0

你应该试试这个

$(window.parent).find('#iframe_response').html('this should go there but it\'s not...');
于 2012-09-18T12:38:10.243 回答