2009-11-20 4 views
1

J'utilise ce code pour ouvrir une fenêtre contextuellepopups d'ouverture de AS3 en utilisant ExternalInterface dans Safari

ExternalInterface.call("function() { window.open('" + url + "','" + title + "','" + options + "'); }"); 

pour les personnes JavaScript: appeler ExternalInterface.call(string); du flash permet au navigateur de faire eval(string)();

que cette L'appel est dans un gestionnaire de clic, il fonctionne même parfaitement avec Firefox et IE, pour Opera, il vous permet d'ouvrir le popup manuellement. Mais dans Safari, il est toujours bloqué silencieusement. Quelqu'un a une idée de comment contourner cela?

grâce

back2dos

Répondre

2

Je l'ai rencontré ce, et pour autant que je pouvais dire qu'il n'y avait pas de solution réelle ... la seule solution que je pouvais trouver était essentiellement vérifier si les travaux window.open , et si elle n'utilise pas navigateToURL à la place ... Je viens de trouver ce lien qui explique beaucoup mieux: http://www.asserttrue.com/articles/2007/08/22/workaround-for-safari-blocking-flash-initiated-pop-ups

+0

à partir du lien, cela semble très utile: http://www.asserttrue.com/articles/2009/04/29/navigatetowindow-project-added-to-github – Cay

+0

merci pour le lien. ça fait tout à fait ce que je fais, mais c'est bien emballé ... :) – back2dos

+0

ok, rien ne semble vraiment fonctionner ... mais cette solution au moins a une belle retombée intégrée, donc je suppose, c'est la meilleure réponse pourrait obtenir ... :) – back2dos

1

Vous ne devriez pas créer votre fonction dans AS3. C'est probablement l'une des raisons pour lesquelles vous avez un mauvais comportement.

Vous devez créer votre fonction dans les fichiers HTML ou JS et l'appeler avec EI, et transmettre les arguments dont vous avez besoin.

+0

pensez-vous, cela résout le problème? le javascript est définitivement exécuté. Je vais essayer, mais je suis très sceptique – back2dos

+0

Même si cela ne résout pas le problème, c'est une bonne habitude. Mais oui, je pense qu'il est plausible que ce soit le problème. –

Questions connexes