2012-03-30 7 views
0

Ich habe eine Webseite, wo ich einen Iframe habe. Wenn jemand auf etwas im Iframe klickt, möchte ich es im übergeordneten Fenster erkennen.Klicken Sie in iframe Register Elternfenster

Ich sehe, es gibt ähnliche Themen im Forum, aber niemand hat mein Problem gelöst.

Zolka

+0

Haben Sie 'window.parent.window.alert' versucht? – mekwall

Antwort

2

Sie müssen die jQuery .contents() Methode verwenden, um den Inhalt des iFrame abzurufen, und dann innerhalb der für Ihre .click1 Elemente zu suchen.

Siehe folgende jQuery-Code (Arbeiten in v1.7 nach oben):

$('#1_iframe').load(function() { 
    $(this).contents().find('#myGrid').on('click', '.click1', function() { 
     alert('Click detected!'); 
    }); 
}); 

EDIT: wickelte ihn in ein .load() Event-Handler.

+0

Danke, es funktioniert! – Zolka

+0

Ich habe eine andere Frage: Wenn ich den Inhalt von div ändern möchte, benutze ich diesen Code: $ ('# 2_iframe'). Contents(). Find ('div # ShoppingCartProducts'). Text ('111111111'); Aber es funktioniert nur, wenn ich es in eine "setTimeout" -Funktion umschlinge. Wahrscheinlich muss ich warten bis der iframe geladen ist und erst danach kann ich den Inhalt ändern. Weißt du vielleicht eine Alternative für setTimeout? – Zolka

+0

Ja, benutze das '.load()' Ereignis für den Iframe - ich habe meine Antwort aktualisiert, um dir zu zeigen, wie es in diesem Fall aussieht. – GregL

0

Bringen Sie ein Ereignis auf dem iframe

$(document).click(function(e) { 
    var targ = e.currentTarget(); 

    //Now send this to the parent function 
    parent.NewClick(targ); 
}); 

Nun ist die NewClick() Funktion im Fenster Eltern, werden Sie wissen, welche Schaltfläche geklickt wurde.

Verwandte Themen