使用IFrame和Javascript滚动父页面
我正在寻找一些关于什么应该是基本脚本的帮助(我想),但我自己也不太明白 我有一个带有iFrame的页面,显示一个我只能访问页眉的页面。 我希望这样,当有人单击iFrame窗口中的任何链接(标记)时,它会将我的父页面滚动到顶部(或特定位置)。 这可能吗 编辑:另外,如果这很重要,我已经在使用David Bradshaw的iFrame resizer脚本动态调整帧大小,它使用postmessage来传递帧->页面 Edit2:父窗口和iframe窗口是跨域的请参见 向iframe页面添加一些JS:使用IFrame和Javascript滚动父页面,javascript,jquery,html,css,iframe,Javascript,Jquery,Html,Css,Iframe,我正在寻找一些关于什么应该是基本脚本的帮助(我想),但我自己也不太明白 我有一个带有iFrame的页面,显示一个我只能访问页眉的页面。 我希望这样,当有人单击iFrame窗口中的任何链接(标记)时,它会将我的父页面滚动到顶部(或特定位置)。 这可能吗 编辑:另外,如果这很重要,我已经在使用David Bradshaw的iFrame resizer脚本动态调整帧大小,它使用postmessage来传递帧->页面 Edit2:父窗口和iframe窗口是跨域的请参见 向iframe页面添加一些JS:
$(document).ready(function(){
$('a').click(function(){
window.parent.$(window.parent.document).trigger('scroll');
});
});
然后在父页面上:
$(document).bind('complete', function(){
//Add scroll code.
});
您可以使用PostMessage来执行类似的操作,但如果您控制两个页面,并且它们位于同一个域中,则应该可以这样做。如果它们在不同的域上(您没有指定),您将无法使用postMessage,我认为这不完全符合跨浏览器的要求,因此无法在所有设置上工作,并且确实没有回退
如果您想使用postMessage,并且您正在使用插件,只需执行以下操作
window.addEventListener("message",function(event){
if(event.origin == 'http://yourdomain.com'){
if(event.data == 'messageString'){
//Add scroll code
}
}
});
最新版本的iframe resizer作为滚动页面的选项,还支持页面内链接。抱歉,我添加了一个编辑。我忘了提到这是跨域的。跨域的你一直在使用post消息。我真的不相信有任何其他的方法。这里有一篇很好的文章解释了这一切:事实上它很简单。