首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iframe-resizer js库:来自父页面的moveToAnchor

iframe-resizer js库:来自父页面的moveToAnchor
EN

Stack Overflow用户
提问于 2016-01-26 23:22:24
回答 1查看 887关注 0票数 2

如何滚动到IFrame页面中的某个锚点标记?

使用David J.Bradshaw https://github.com/davidjbradshaw/iframe-resizer设计的巧妙的Iframe-Resizier库,我在外部页面中包含了一个包含大量内容(=长页面)的IFrame。因此,如果我链接到页面,那么许多内容在第一个屏幕上是不可见的,在某些情况下,我想跳转到iframe中更下方的特定锚点标记。

代码语言:javascript
复制
<html>
    <a href=“outer-page.html#somewhere_name” />
</html>

似乎不起作用

我像这样使用"inPageLinks: true“:

代码语言:javascript
复制
<script type="text/javascript">
    iFrameResize({
        heightCalculationMethod: 'lowestElement',
        inPageLinks: true
</script>

我现在的问题是:我如何才能让外部页面向下滚动到某个锚标签,而不需要在iframe页面内部实现一些新的东西?本例中的锚标记位于IFrame页面内部。

当我包含像这样的IFrame页面时

代码语言:javascript
复制
<html>
    <iframe id=“strytl” src=“iframe-page.html#somewhere_name”></iframe
</html>

然后,(重新)调整IFrame的大小似乎不能完美地工作,并且iframe顶部的内容被切断。

但在moveToAnchor中,它可以在IFrame内部完美地工作,页面会神奇地向下滚动到锚标签。因此,在iframe页面中,我可以调用:

代码语言:javascript
复制
<script type="text/javascript>
    parentIFrame.moveToAnchor('somewhere_name’);
</script>

但是我怎么才能从父页面触发它呢?

代码语言:javascript
复制
<script type="text/javascript>
    $('iframe#strytl').iFrameResize({moveToAnchor: 'somwhere_name'});
</script>

导致此错误:

代码语言:javascript
复制
<script type=“text/javascript”>
   [iFrameSizer][Host page: strytl] Ignored iFrame, already setup.and
</script>

代码语言:javascript
复制
<script type="text/javascript">
    iFrameResize({
        heightCalculationMethod: 'lowestElement',
        inPageLinks: true,
        moveToAnchor: 'somewhere_name'});
</script>

似乎一点效果都没有。

(在本例中,外部页面和iframe具有不同的服务器名称。)

代码语言:javascript
复制
<script type=“text/javascript”>
    var myFrm = document.getElementById('strytl');
    var myCw  = myFrm.contentWindow;
    myCw.parentIFrame.moveToAnchor(‘somewhere_name’);
</script>

结果:

代码语言:javascript
复制
<script type=“text/javascript”>
   Error: Permission denied to access property “parentIFrame"
</script>

我能从外部页面跳转到iframe中的锚点吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-11 05:29:05

就像这样。

代码语言:javascript
复制
<script type="text/javascript">
    iFrameResize({
        heightCalculationMethod : 'lowestElement',
        inPageLinks             : true,
        initCallback            : function (iFrame){
            iFrame.iFrameResizer.moveToAnchor('someAnchor');
        }
     });
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35017367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档