通过fancybox在iframe中锚定标记

时间:2013-05-09 19:47:13

标签: javascript iframe tags fancybox anchor

我正在使用fancybox打开iframe并滚动到一个锚标签,但除了IE完美运行之外,所有其他浏览器都不一致,并停在不是锚点的不同位置。

我认为根据我在此处阅读http://support.mozilla.org/en-US/questions/927172的问题可能会出现问题,但我无法弄清楚如何修复我的代码。

这是链接: <a class="various fancybox.iframe" href="cost_of_hire.php#cupcakeanchor"><img src="images/services/4.jpg" alt="" /></a>

和锚点:     <a name="cupcakeanchor">CUP CAKE MAKING PARTY<br />£0.00</a>

感谢任何帮助 感谢

PS:在IE浏览器中,所有这些都在Chrome和Firefox中运行,来自我拥有的12个链接,8个工作完美,在Safari 6工作和Opera中都没有工作。

2 个答案:

答案 0 :(得分:0)

在Fancybox中,锚点不能和其他人一起使用。尝试使用。

答案 1 :(得分:0)

如果您想使用锚点打开iframe,则无法直接使用,但可以使用javascript完成。至少它适用于我(在Prestashop中使用)。

我的链接:

<a href="http://mylink.com/blabla/#myanchor" class="iframe-pv">Mi linkable text</a>

我的代码:

$(document).on('click', 'a.iframe-pv', function(e){
    e.preventDefault();
    var anchor = '';
    var url = $(this).attr('href');
    var anchorIdx = url.indexOf('#');

    if (anchorIdx > -1) {
        anchor = url.substring(anchorIdx, url.length);
        url = url.substring(0, anchorIdx);
    }

    if(url.indexOf('content_only=') == -1) {
        url += (url.indexOf('?') > -1) ? '&' : '?';
        url += 'content_only=1';
    }

    if (!!$.prototype.fancybox){
        $.fancybox({
            'padding':  20,
            'width':    '70%',
            'height':   '70%',
            'type':     'iframe',
            'href':     url + anchor
        });
    }
});

我希望它有所帮助:)