Javascript 将滚动事件绑定到iframe
我正在使用iframe加载外部URL。这是结构图-Javascript 将滚动事件绑定到iframe,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我正在使用iframe加载外部URL。这是结构图- <iframe id="iframe-wrapper" src="http://blog.kpmg.ch/" style="width: 100%; height: 100%; overflow-y: scroll"></iframe> (二) (三) (四) 这是行不通的。这是因为原产地相同的政策。因为您的页面和iFrame的源不在同一个域中,所以事件永远不会在您的主页上触发。请在此处阅读更多信息: 也许您可以使用
<iframe id="iframe-wrapper" src="http://blog.kpmg.ch/" style="width: 100%; height: 100%; overflow-y: scroll"></iframe>
(二)
(三)
(四)
这是行不通的。这是因为原产地相同的政策。因为您的页面和iFrame的源不在同一个域中,所以事件永远不会在您的主页上触发。请在此处阅读更多信息:
也许您可以使用以下解决方案之一使其工作:
因此,对于外部URL(不在同一个域上),这总是有问题的。
$(“#iframe wrapper”)。滚动(fn)代码>你试过了吗?复制是你没有见过或尝试过的东西,它可以工作!我已经尝试了链接,检查我展示的第三个例子,如果你能帮助我,请告诉我哪里做错了。在完成并理解完整问题之前,不要找到重复项。:)@洁,是的,我已经试过了,对我没用。我不知道这里出了什么问题。我发现事件应该在iframe完全加载后绑定。所以我不再那样做了。@ SUVRO你认为你的问题是调用Actuple()函数,而不是iFrAm本身?你看过这个@KhalidT了吗。谢谢你指出这一点。但我已经这样试过了。也不起作用。:)谢谢你的回复和链接。至少现在我知道是什么导致了这个问题,我应该怎么做。这就是为什么其他解决方案对我不起作用的原因。需要找到一个解决方法。我确实指导过你到另一个线程(在对你的问题的评论中),在那里他们建议如何绕过它(使用postMessage API),但只有当你控制了两个页面(父页面和iframe)时,这才行得通。如果不是这样,那么你就没有真正的方法来做你想要做的事情,并且有充分的理由。
$(window).load(function(){
$($('#iframe-wrapper').contents()).scroll(function(){
alert("Scrolling");
});
});
$('#iframe-wrapper').load(function(){
$($(this)[0].contentWindow).scroll(function(){
alert("Scrolling");
});
});
$("#iframe-wrapper").load(function(){
var iframeContent = getFrameTargetElement( document.getElementById("iframe-wrapper") );
iframeContent.onscroll = function(e){
alert("Scrolling");
};
});
$("#iframe-wrapper").load(function(){
$("#iframe-wrapper").contents().find("body").scroll( function(e) {
alert("Scrolling");
});
});