2012-03-26 7 views
1

Ich habe ein kleines Javascript/jquery-Skript auf page1 (eine Aspx-Seite), die einen iframe mit page2 geladen, so dass es bei Ihnen auf der Seite bleibt, während Sie nach oben scrollen und auf Seite1. Wenn ich page1 jedoch in einen iframe für eine andere übergeordnete Seite lade, funktioniert der Bildlaufeffekt nicht.Zugriff Eltern Window Scroll-Ereignis von Kind in Iframe mit Jquery

Ich habe versucht, window.parent in den Aufrufen zu verwenden, aber das Skript wird immer noch nicht aktiviert und blättern Sie den iframe Seite2, während Sie Seite1 im Iframe der übergeordneten Seite (eine andere ASPX-Seite) scrollen. Ich hoffe das ergibt Sinn. Hier

ist das Skript, das ich versucht habe:

<script type="text/javascript"> 
     $(window.parent.document).ready(function() { 
      var $scrollingDiv = $("#IframeDir"); 

      $(window.parent).scroll(function() { 
       $scrollingDiv 
       .stop() 
       .animate({ "marginTop": ($(window.parent).scrollTop() + -10) + "px" }, "slow"); 

      }); 
     }); 


    </script> 

Es funktioniert, wenn ich laden page1 nur in einem eigenen Tab oder Fenster, aber wenn ich page1 laden in einem Iframe in die übergeordnete Seite, es doesn‘ t scheint das Bildlaufereignis der übergeordneten Seite zu sehen.

Vielen Dank im Voraus für Anregungen! Erin

+0

Gibt es etwas, das ich auf der übergeordneten Seite haben muss, damit dies funktioniert? – Erin

Antwort

0

Ich glaube nicht, dass Sie $(window.parent).scroll() von innerhalb $(document).ready() oder in diesem Fall $(window.parent.document).ready() anrufen können. Was das betrifft glaube ich nicht, $(window.parent).scroll() überhaupt arbeiten ich denke, es $(parent.window).scroll()

Dies ist sein muss, wie ich es vorher getan haben:

$(document).ready(function() { 
//document ready functions go here 
}); 

$(parent.window).scroll(function() { 
//parent document scroll functions go here 
}); 

Und zu beantworten Ihre andere Frage, ich tun glaube, dass Sie jQuery auf der übergeordneten Seite benötigen, damit dies funktioniert.

2

Sehen Sie diese Antwort Run JQuery in the context of another frame

Sie haben im Rahmen passieren (Dokument der Eltern) zu suchen, in

// Untested 
$(window.parent.document, window.parent.document).ready(function() { 
    var $scrollingDiv = $("#IframeDir"); 

    $(window.parent, window.parent.document).scroll(function() { 
     $scrollingDiv 
     .stop() 
     .animate({ "marginTop": ($(window.parent, window.parent.document).scrollTop() + -10) + "px" }, "slow"); 

    }); 
}); 
1

Ich wollte auch das Floating-div innerhalb iframe und Rantul dieser Code arbeitete für mich!

$(parent.window).scroll(function() { 
    //parent document scroll functions go here 
}); 
Verwandte Themen