J'ai rencontré un problème avec l'ouverture d'une nouvelle fenêtre en safari (à la fois pour les versions ipad et desktop) qui tourne autour du bloqueur de popups. Fondamentalement, j'ai trouvé que si window.open n'est pas appelé à partir d'un événement de clic, safari bloquera la fenêtre contextuelle.
L'événement qui appelle window.open est actuellement inchangé à partir d'une zone de liste.
Existe-t-il un autre moyen que de changer l'événement que nous traitons pour inciter le safari à autoriser une fenêtre contextuelle dans ce scénario? (l'événement inchangé)
Je ne pense pas qu'il existe un moyen d'ouvrir une nouvelle fenêtre dans un safari mobile autrement qu'en cliquant sur un bouton. Reportez-vous à cette StackOverflow Question qui est similaire. Je ne sais pas si cela fonctionnera, mais vous pouvez regarder déclenchant un clic de bouton par programme en utilisant la fonction trigger () de jquery .
Vous pouvez également examiner les options d'affichage d'une boîte de dialogue dans votre propre page, en utilisant peut-être des outils tels que jquery ui.
HTH!
Le safari a un silencieux bloqueur de fenêtres pop-up qui ne s'affiche pas lorsqu'un lien est bloqué.
Pour vérifier si le bloqueur de fenêtres publicitaires intempestives est actif, accédez aux paramètres de safari> sécurité> quelque chose comme bloquer les fenêtres publicitaires intempestives.
Pour le traverser de manière simple, puisque je ne peux pas ouvrir une nouvelle fenêtre, j'affiche une alerte montrant une pop-up bloquée.
Dans mon cas, j'utilise des entrées sélectionnées pour ouvrir des liens externes:
<select id="retailer" class="windowOpen retailer-submenu">
<option value="null">Select one</option>
<option value="http://Amazon.com">Amazon</option>
<option value="http://ebay.com">eBay</option>
</select>
<script type='text/javascript'>
$('select.windowOpen').change(function(){
var url = $(this).val();
var open = window.open(url);
if (open == null || typeof(open)=='undefined')
alert("Turn off your pop-up blocker!\n\nWe try to open the following url:\n"+url);
});
</script>
var open = window.open('http://google.com');
if (open == null || typeof(open)=='undefined')
alert("Turn off your pop-up blocker!");
PS: le déclencheur jquery n'a pas fonctionné avec moi.