2010-01-12 9 views
4

Je dois déclencher une fonction JavaScript dans une fenêtre d'ouverture en cliquant sur un bouton dans l'enfant.Appelez la fonction JavaScript dans l'ouvreur

Je pensais que ce qui suit fonctionnerait, mais ce n'est pas le cas.

window.opener.MyFunction() 
+0

Cela devrait fonctionner. Quand vous dites que ce n'est pas le cas, pouvez-vous donner plus d'informations? –

+0

Votre 'MyFunction' est-elle attachée à la fenêtre d'ouverture? –

+1

La fonction est déclarée dans la fenêtre d'ouverture. Même si je change la fonction en close(), cela ne fonctionne pas. L'utilisation de Google Chrome pourrait-elle faire partie du problème? – Brian

Répondre

0

sont tous les deux fenêtres sur le même domaine (par exemple foo.com?) Il peut être bloqué pour des raisons de sécurité de cross-site scripting.

+0

Sam domaine. En fait, ils sont tous deux inclus dans le même fichier avec une variable GET utilisée pour distinguer – Brian

2

Il s'avère que MyFunction() était dans une instruction jQuery document.ready. Cela a bien fonctionné après que j'ai changé cela. Intéressant cependant, window.opener.close() ne fonctionne toujours pas.

+0

Vous devriez accepter votre propre réponse, il y a un badge pour cela. ;) Et je crois que Chrome (et d'autres navigateurs) ne vous permettra pas de fermer les fenêtres qui n'ont pas été ouvertes par un script. –

-1

Essayez d'utiliser:

window.onload = function() { MyFunction(); }

0

Cela fonctionne pour moi sur IE9. J'ai besoin d'ouvrir une fenêtre séparée pour un utilisateur de télécharger un document et en cas de téléchargement réussi, je dois dire à la fenêtre d'ouverture pour effectuer une tâche. Peut-être un autre navigateur que vous avez mentionné ne supporte pas cela.

Questions connexes