【发布时间】:2013-02-26 22:42:58
【问题描述】:
我正在使用 jQuery 访问 div id="element"。
<body>
<iframe id="uploads">
<iframe>
<div id="element">...</div>
</iframe>
</iframe>
</body>
所有 iframe 都在同一个域中,没有 www / non-www 问题。
我已成功选择第一个 iframe 中的元素,但没有选择第二个嵌套 iframe。
我已经尝试了一些东西,这是最近的一次(也是一次非常绝望的尝试)。
var iframe = jQuery('#upload').contents();
var iframeInner = jQuery(iframe).find('iframe').contents();
var iframeContent = jQuery(iframeInner).contents().find('#element');
// iframeContent is null
编辑: 为了排除时间问题,我使用了点击事件并等待了一段时间。
jQuery().click(function(){
var iframe = jQuery('#upload').contents().find('iframe');
console.log(iframe.find('#element')); // [] null
});
有什么想法吗? 谢谢。
更新: 我可以像这样选择第二个 iframe...
var iframe = jQuery('#upload').contents().find('iframe');
现在的问题似乎是 src 是空的,因为 iframe 是用 javascript 生成的。 所以选择了 iframe 但内容长度为 0。
【问题讨论】:
-
这可能没用,但我不禁想知道为什么您要操作两次嵌套的 iframe 文档...您是怎么到这里的?可能的 XY 问题。
-
我正在创建一个使用 CKFinder 和 Amazon S3 的 DRM 应用程序。我试图改变的是CKFinder。我对功能进行了大量更改,但现在我需要更改 UI。 (不能用 CSS 更改,因为有多个实例不需要此特定更改)
-
根据this的回答,你必须在你想使用DOM遍历的每个
iframe中链接到jQuery。因此,在您的情况下,uploads必须包含<script type="text/javascript" src='js/jquery.min.js"></script>或类似名称。 -
iframe 盗梦空间!
标签: javascript jquery iframe