Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何从iframe中获取动态编写的iframe的祖先元素?_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript:如何从iframe中获取动态编写的iframe的祖先元素?

Javascript:如何从iframe中获取动态编写的iframe的祖先元素?,javascript,jquery,iframe,Javascript,Jquery,Iframe,我在一个页面上有一个div,谷歌用它来写一个child div和child iframe广告 <div id="ads-pos-111" class="module ad ad-111" data-pos="922"></div> 编写iframe广告时,DOM如下所示: <div id="ads-pos-111" class="module ad ad-111" data-pos="922"> <div id="google_ads_if

我在一个页面上有一个div,谷歌用它来写一个child div和child iframe广告

<div id="ads-pos-111" class="module ad ad-111" data-pos="922"></div>

编写iframe广告时,DOM如下所示:

<div id="ads-pos-111" class="module ad ad-111" data-pos="922">
    <div id="google_ads_iframe_/123456/consumer/hco_3__container__" style="border: 0pt none;">
         <iframe id="google_ads_iframe_/123456/consumer/hco_3" title="3rd party ad content" name="google_ads_iframe_/123456/consumer/hco_3" width="1" height="8" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" srcdoc="" style="border: 0px; vertical-align: bottom; width: 100%; height: 578px; margin: 0px;"></iframe>
    </div>
</div>

我想在iframe中编写Javascript代码,它可以遍历它的祖先以获得上面两个祖先的
data pos
属性的值。我想使用类似于
jQuery.closest('.data pos')
的东西

我不能使用iframe名称作为锚定点,因为该名称是由Google动态生成的。我也不能使用父div ID,因为页面上可能有多个广告。因此,我不能使用像
window.parent.$(“#谷歌广告/iframe\u123456/consumer/hco\u3”)这样的代码,因为我不知道ID。每个iframe都需要“自我检测”它所在的
“数据位置”

有人遇到过这种情况吗?
(iframe与父页面在同一个域上提供)

如果没有跨域问题,请参阅。页面上是否只有一个iframe?如果是这样的话,只需使用$('iframe').parent().parent().attr('data-pos')即可在渲染后获得所需内容。这里有一个jsbin:@yourSweeter:Google正在提供大量广告,页面上有很多iFrame。因此,你的语法帮不了我。蒂姆的答案似乎就是我想要的。@蒂姆:谢谢你的链接。我不知道window.frameElement存在。刚刚测试了它,我就能够得到值。如果没有跨域问题,请参阅。页面上是否只有一个iframe?如果是这样的话,只需使用$('iframe').parent().parent().attr('data-pos')即可在渲染后获得所需内容。这里有一个jsbin:@yourSweeter:Google正在提供大量广告,页面上有很多iFrame。因此,你的语法帮不了我。蒂姆的答案似乎就是我想要的。@蒂姆:谢谢你的链接。我不知道window.frameElement存在。只是测试了一下,我就能得到它的值。