So che posso attivare l'evento solo in una finestra. Ma ho provato così: Nella finestra in alto ho scritto:
jQuery("#some-popup").trigger("opened-popup");
E in iframe ho scritto:
$("#some-popup", window.parent.document).bind("opened-popup", function () {
alert("ok");
});
Che cosa sto facendo di sbagliato?
risposte:
2 per risposta № 1Prova questo nel tuo frame:
invece di
$("#some-popup", window.parent.document).bind("opened-popup", function () {
alert("ok");
});
Fai questo
parent.$("#some-popup", window.parent.document).bind("opened-popup", function () {
alert("ok");
});
Ci sono due istanze di jQuery sul posto, unoper il genitore e uno per il telaio. Stai licenziando l'evento sul jQuery di un genitore, ma legandolo ad esso all'interno del jQuery del frame: se si collega al jQuery del genitore in child, il binding (o .on ()) dovrebbe funzionare.
EDIT: potresti non aver bisogno di "window.parent.document" su bind dopo averlo collegato all'evento del genitore.
0 per risposta № 2
Se vuoi evitare "problemi" con accessibilità / visibilità tra windows / iframe ti suggerirei easyXDM
easyXDM è una libreria Javascript che ti permettecome sviluppatore di facilmente aggirare la limitazione imposta dalla stessa origine Politica, a sua volta, semplificando la comunicazione e l'esposizione di javascript API oltre i confini del dominio.