根据同一域中iFrame中的元素更改页面上的元素

时间:2013-05-27 10:51:16

标签: javascript jquery html5 iframe

阅读了很多关于访问iFrame内容的帖子和答案, 我尝试将这些结合到我的特定情况中。

不幸的是我无法让它工作,所以也许我缺少一些添加点的心理能力;)

我尝试做的事情如下:

我的IFrame(同一个域)中加载的页面包含一个菜单,我的活动项目包含class="menuactive" data-rel="SomeName"。我的父页面包含一个带有链接的div(#portfolioslider),其id对应于iFrame中链接的data-rel属性。

因此iframe中的链接例如是<a href="bla" class="menuactive" data-rel="Fashion">Fashion</a>,在父页面上我的元素是<span id="Fashion">Fashion</span>,我想在其上同时添加一个类class="active"我的iFrame重新加载并将class="menuactive"添加到菜单项。

这似乎是最合乎逻辑的方法:

iFrame中加载的网页中的Javascript:

$(function() { 
    $('div.menu a.menuactive').ready(function() {

        $(window.self.top).contents().find('#portfolioslider a').each(function() {
             $(this).removeClass('active');
             $('#$(this).attr('data-rel')).addClass("active");

        });
    });
 });

这根本不起作用,

我希望我可以制作一个jsFiddle,但我似乎无法找到如何在那里构建iFrame。

任何想法都会非常感谢!,谢谢你们

亲切的问候, 的Jeroen

1 个答案:

答案 0 :(得分:0)

叶!

我修复了它,使用:

$('div.menu a').click(function() { 
    $('a.active', window.parent.document).removeClass("active"); 
    $('#' + $(this).attr('data-rel'), window.parent.document).addClass("active");
});

干杯, 的Jeroen