0

我为我公司的客户构建了一个 WordPress 插件,其中一个选项使用iframe. 一位客户向我指出了一个有趣的问题。当页面加载时,它不会在顶部加载,而是在上方加载iframe(请参阅:http ://salondshayn.com/wp/staff/jude-hair-stylist-hairdresser-scottsdale/ )。同样的事情发生在我的测试站点上,在我测试过的所有浏览器中(例如,chrome 和 firefox)。

我已将其范围缩小到iframe,但它也可能与 WordPress 处理 iframe 的方式有关。这个问题类似,但给出的答案是设置display: none;哪个不起作用,因为我需要显示 iframe 的内容。

有什么建议么?

4

3 回答 3

0

使用 scrollTo 函数并将这段 javascript 放在页面末尾。我从Scrolling an iframe with javascript?

    var myIframe = document.getElementById('iframe');
    myIframe.onload = function () {
        myIframe.contentWindow.scrollTo(xcoord,ycoord);
    }

如果涉及到 jQuery,你可以使用这个:

    <script type="text/javascript">
        $(document).ready(function () {
            window.scrollTo(0,0);
        });
    </script>
于 2012-11-29T23:30:51.257 回答
0

我会扩展scrollTo@stevepowell2000 指出的问题,并建议您检查所有脚本iframe,很可能那里scrollTo发生了什么事。

我在 iframe 源中找到了这个,但不确定它是否相关......

$("#siteMasterPage").live('pageshow', function(event) {
    var currentArea = $('#hidCurrentArea').val();
    if (currentArea === "business") {             
         setTimeout(function() {
            $.mobile.silentScroll(30);
         }, 10);
     }
});

如果确实如此,那么问题将是如何防止这种情况发生,因为应用第二个滚动可能看起来很奇怪。

于 2012-11-30T00:13:24.657 回答
0

我最终(两周后)找到了这个问题的答案。我从 Nate 的回答中得到了它 -页面底部的 iframe:避免自动滚动页面

我用了:

<iframe style="position: absolute; top: -9999em; visibility: hidden;" onload="this.style.position='static'; this.style.visibility='visible';" href="..."></iframe>

它似乎已经完全消除了滚动问题。

这是 Nate 的引述:

在这里,我们基本上是在说隐藏框架并将其垂直移动到页面上的负偏移量。当它尝试将元素聚焦在框架内时,它应该向上滚动页面,然后一旦加载,将 iframe 放回其预期位置。

于 2012-12-20T18:13:49.790 回答