0

当有人点击时,我正在寻找我的网页以跳转到 iframe。我找到了一种效果很好的解决方案,那就是:http: //jsfiddle.net/RGjCL/4/

<ul>
    <li>
        <a href="javascript:void(0)" onclick="IFrameScroll('http://www.asdf.com')">Class Name</a>
    </li>
 </ul>

<script type="text/javascript">
    function IFrameScroll(link){
        window.myIframe.location=link;
        window.location.hash='myIframe'
    }
</script>
<IFRAME id = "myframe"  onload = "setIframeHeight( this.id )" name="myIframe">

我已经在我的网络上尝试过,它部分有效,除了它在加载之前滚动到 iframe 的事实,所以它不会走到底部那么远,因为一旦 iframe 加载,页面就会完全扩展。

有问题的网络如下:http ://www.clavederock.com.ar - 链接位于“Quienes Somos”“Programacion”和“Archivo”选项卡下。

我希望我说清楚了,所以你可以帮助我。提前致谢!

4

2 回答 2

1

尝试window.location.hash='myIframe'从函数移动IFrameScroll()setIFrameHeight(),因此一旦 iframe 具有所需的大小,您将更改哈希。

编辑#3:

由于您需要等到 iframe 加载才能调整它的大小并且window.location.hash第二次在 chrome 中不起作用,您可以试试这个:

<script type="text/javascript">
    function IFrameScroll(link){

        window.myIframe.onload = function() {
            // this will ensure that the height will be updated after load
            setIframeHeight('myIframe');
            // This works on FF and IE, and let users to bookmark
            window.location.hash='myIframe';
            // and this will allow it to scroll the second time for chrome
            document.getElementById('myIframe').scrollIntoView(true);
        }

        window.myIframe.location=link;

    }
</script>

我真的希望这能解决你的问题:)

于 2012-12-02T22:38:45.500 回答
1

您可以进行平滑滚动,而不是跳转到 iframe。在单击链接后,这将为 iframe 加载更多时间。

或者,可能更有效的是,您可以将 iframe 与页面的其余部分一起加载,但使其不可见。然后你只需要在用户点击链接时显示它

//load the page with the iframe hidden
//in css
#myIframe { visibility: hidden; }
//use jquery to make it visible when the user clicks the link
//you could do this with javascript if you don't want to import jQuery, but I find jQuery easier
$(document).ready(function() {
    $('#myAnchorTagId').click(
        function() {
            $('myIframe').css('visibiliy', 'visible')
        }
    )
});
于 2012-12-02T22:44:28.563 回答