2009-10-02 17 views
5

Tengo una página web (A) y estoy incrustando (A) en mi página principal (B) usando iframe. Este (A) contiene un enlace que cierra la ventana del navegador:JQuery busca un elemento dentro de Iframe (por su texto) y le agrega la función .click

<a href="" onclick="window.opener = window; 
    window.close(); 
    return false;">Close The Page</a> 

Desde que embedd (A), la estrecha capacidad en (A) no es más funcional es. Lo que tengo que hacer es, cuando se hace clic en este enlace desde (B), quiero ocultar mi iframe, es decir, hacer que parezca cerrado. Entonces, ¿tengo que llegar a ese enlace en el iframe y entender si se hace clic o no (B)?

Ayuda por favor.

Gracias

Respuesta

11

Estoy pensando que el siguiente funcionará. Básicamente estamos realizando un "descubrimiento" sobre los contenidos de su iframe. Una vez que encontremos el enlace que queremos, le vinculamos un evento que cerrará el iframe apropiado en el documento principal. Tenga en cuenta que su iframe debe estar en el mismo dominio que su página principal, o no podrá acceder a sus elementos. Además, agregué una clase al enlace para facilitar la selección. Sugiero que también hagas esto.

$("#iframeID").contents().find("a.closeWindow").bind("click", function(){ 
    $("#iframeID", top.document).hide(); 
}); 

Si es absolutamente necesario basar la unión en el texto del enlace, que tendrá que pasar por los vínculos para encontrar el correcto uno:

$("a", $("#iframeID").contents()).each(function(){ 
    if ($(this).text() == "Close The Page") { 
    $(this).bind("click", function() { 
     $("#iframeID", top.document).hide(); 
    }); 
    } 
}); 
+0

bien el enlace no hace tiene una (id = closeWindow), solo tiene el texto "Cerrar la página", ¿cómo obtendré ese elemento? – stckvrflw

+0

He intentado esto y no funcionó función() { \t \t $ ('# iframeid'). Ready ( \t \t función() { \t \t \t \t \t \t $ ('# iframeid ') .Contenido find() (.' a: visited ') se unen ("clic", la función (.) { \t \t \t $ ("# iframeid", top.document) .hide(); \t \t \t }); \t \t \t} \t \t); – stckvrflw

+0

Si es su página, ¿no puede agregar '...'? – Sampson

Cuestiones relacionadas