4

我是新来的……希望我做的一切都是正确的;-D

我发现了一些有类似问题的主题,但它们看起来不像他们想要达到我想要达到的目标。

我有一个内容区域很长的网站,该网站有滚动条。此内容区域内的某处是一个iframe. 这iframe实现了一个全高的站点(一个支持板)并iframe在内容height发生变化时调整大小 - 因此iframe没有滚动条。现在我想要的是:当我用 ie 打开网站时,http://www.mywebsite.com/#new我希望页面向下滚动到iframe 的开头,iframe但不仅是 iframe 的开头,还有锚放置this内的位置iframe

所以它iframe本身不需要滚动(它始终是 100% 的高度),但父框架应该滚动到iframe放置锚点的位置 - 内部 - 锚点。

我真的不知道如何解决这个问题。将锚点添加到 iframe url 没有帮助,而且仅将锚点添加到网站 url 也不起作用。我确定我必须用 javascript 或类似的东西来实现一些东西,但不知道怎么做!我能够修改两者的代码 - iframe 内的网站和父网站!

//EDIT
哦,我忘了...我不能使用 onClick-Action 或链接属性(这就是相关帖子中的解决方案),因为它不是同一页面内的跳转。页面正在重新加载,应该跳转到锚点:-D 所以当我自己输入 URL 时它必须工作......
希望你明白我需要什么!

//EDIT2 可能的框架:

  • 主页是一个wordpress博客,所以JQuery是可能的!
  • iframe 页面是一个简单的机器论坛(SMF)——我认为这里只有原生 JS!
4

1 回答 1

3

这是一个答案,它将使您“走上正确的道路”。

假设您的 iFrame 始终位于主页内的相同位置,您需要将主页滚动到这一点:iframe y 坐标 + iFrame 内的锚点坐标。

所以我会称你为anchor:<a name="anchor1">Here</a>而你是iFrame:<iframe id ="myiFrame" ...

要获取页面中的 iframe 位置,您可以使用$("#myiFrame").position().top.iFrame 中的锚点位置$("#myiFrame").contents().find('a[name=anchor]').position().top

所以你的脚本看起来像:

var y = $("#myiFrame").position().top + $("#myiFrame").contents().find('a[name=anchor]').position().top;
$(window).scrollTop(y)
于 2013-07-27T18:45:52.573 回答