【问题标题】:How to get which element was clicked and the src attribute of said element in an iFrame如何在 iFrame 中获取单击了哪个元素以及该元素的 src 属性
【发布时间】:2011-08-24 14:11:39
【问题描述】:

我有一个使用 fancybox plugin 即时生成的 iframe。我想在其中获取 clicked 元素,并从该元素获取 src 属性,但每当我尝试时,我都会得到“未定义”作为答案。

触发 iframe 创建的原因是:

<a id="contentImageAJAX" class="iframe" href="/tools/images?keyword=cat" style="display:none;">g</a>

 $('#contentImage').focus(function(){
        var $contentImage = $('#contentImage');
        $('a#contentImageAJAX').click().fancybox({
            'width' :  1280,
            'height': 600,
            'centerOnScroll': true,
            'hideOnContentClick' : true,
            'onCleanup': function(){tryMe($contentImage);}
        });

我发现创建的 iframe 是#fancybox-frame 所以我尝试了:

$('#fancybox-frame').load(function(){
    $('#fancybox-frame').contents().find('body').html('Hey, i`ve changed content of <body>! Yay!!!');
});

但它不起作用,“tryMe”就是这个功能:

function tryMe($cImg){
        console.log($('#fancybox-frame').contents().find('clickable').attr('src'));
    }

我已经尝试了几个小时的迭代,知道我错过了什么吗?

【问题讨论】:

    标签: javascript jquery iframe fancybox


    【解决方案1】:

    tryMe 方法里面的选择器是错误的find('clickable')。我想你正在寻找find('.clickable')

    试试这个

    $('a#contentImageAJAX').click().fancybox({
                'width' :  1280,
                'height': 600,
                'centerOnScroll': true,
                'hideOnContentClick' : true,
                'onCleanup': function(){parent.tryMe($contentImage);},
                'onComplete': function(){
                   $('#fancybox-frame').contents().find('linkSelector').click(function(){
                       //Do you stuff here.
                   });
                } 
     });
    

    【讨论】:

    • 我将 find('clickable') 更改为 find('.clickable') 并获得了 1 张图片的 src,但如何才能获得被点击的图片?我也收到此错误 183Error in event handler for 'undefined': Error: INDEX_SIZE_ERR: DOM Exception 1
    • 您必须附加一个单击事件处理程序才能获取您单击的图像的src
    • 内联点击?真的吗?即使这是不好的做法?
    • 您也可以将点击处理程序附加到 iframe 内的链接。我没说要内联。
    • 我意识到这一点,但我不确定如何继续,你介意告诉我你是怎么做的吗?抱歉假设你的意思是内联:)
    猜你喜欢
    • 2012-09-27
    • 2021-09-17
    • 1970-01-01
    • 2015-04-02
    • 2013-04-02
    • 1970-01-01
    • 2017-10-05
    • 2019-11-17
    • 1970-01-01
    相关资源
    最近更新 更多