我正在寻找一些关于什么应该是基本脚本的帮助(我认为),但我不能自己解决这个问题。
我有一个带有iFrame的页面,显示一个我只能访问标题的页面。 我想这样做,以便当有人点击iFrame窗口中的任何链接(标记)时,它会将我的父页面滚动到顶部(或特定位置)。 这可能吗?
编辑:此外,如果它很重要,我已经在使用David Bradshaw的iFrame缩放器脚本动态调整帧的大小,它使用postmessage来传递frame-> page。 https://github.com/davidjbradshaw/iframe-resizer
Edit2:父窗口和iframe窗口是跨域的
答案 0 :(得分:1)
请参阅Trigger events in iframe's parent window
将一些JS添加到您的iframe页面:
$(document).ready(function(){
$('a').click(function(){
window.parent.$(window.parent.document).trigger('scroll');
});
});
然后在父页面上:
$(document).bind('complete', function(){
//Add scroll code.
});
您可以使用帖子消息来执行类似的操作,但是如果您控制两个页面并且它们位于同一个域中,则应该可以使用。如果它们位于不同的域(您没有指定),那么您将使用postMessage,我相信它不是完全跨浏览器兼容的,因此无法在所有设置上工作,而且确实没有&# 39; ta fallback。
如果您想使用postMessage并且使用的是插件,请执行类似
的操作window.addEventListener("message",function(event){
if(event.origin == 'http://yourdomain.com'){
if(event.data == 'messageString'){
//Add scroll code
}
}
});