【发布时间】:2010-11-04 21:12:52
【问题描述】:
假设我在 同一域 上有一个页面,我将其放入 iframe 中。在 iframe 中,我向元素添加了数据,如下所示:
HTML
<div id="data"></div>
脚本
$('#data')
.data('test1', 'this is test data 1')
.data('test2', ['John', 'Smith'])
.data('test3', {
alert1: function() {
$('#data').append('test3: successful<br>');
}
})
现在,一旦此页面位于 iframe 中,我知道我可以按如下方式访问该元素:
$('#frame').contents().find('#data');
但是当我尝试从该元素中获取数据时,它总是未定义。
$('#frame').contents().find('#data').data('test1'); // shows up as undefined
我知道 jQuery 在内部将 data() 存储在 cache 对象中,但我不知道如何从该文档外部访问它。我设置了this demo 来显示我的问题。单击“获取帧数据”按钮查看结果。
如果有任何意见,我将不胜感激:)
【问题讨论】: