gpt4 book ai didi

jquery - 从 iframe 元素访问 jQuery 数据

转载 作者:行者123 更新时间:2023-12-03 22:23:33 28 4
gpt4 key购买 nike

假设我在放入 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显示我的问题。单击“获取帧数据”按钮查看结果。

如果有任何意见,我将不胜感激:)

最佳答案

您需要从窗口的 jQuery 对象获取缓存元素,如下所示:

var windowjQuery = $('#frame')[0].contentWindow.$;
var f = $('#frame').contents().find('#data');

然后要获取数据,请使用 $.data() ,像这样:

windowjQuery.data(f[0], 'test1')

You can test out your updated/working demo here .

<小时/>

这真正访问的是:

var key = f[0][frame.contentWindow.$.expando];
var dataItem = frame.contentWindow.$.cache[key]["dataKey"];

关于jquery - 从 iframe 元素访问 jQuery 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101457/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com