J'ai du code qui ouvre un lien. Le lien est configurable et donc je suis en train de faire quelques erreurs de base. Spécifiquement, j'emballe l'appel window.open()
avec un try/catch car l'API intégrée lèvera une exception si l'URL n'est pas valide. Le problème est que, dans Safari, la capture n'est pas touchée.Impossible d'intercepter l'exception window.open() dans Safari
J'ai essayé de parcourir l'API Safari, mais je ne trouve aucune bonne information.
L'exemple ci-dessous fonctionne très bien dans IE et Chrome mais pas dans Safari.
$(function() {
$('button').on("click", function() {
try {
var begin = "http://<";
var opentag = "script>";
var stuff = "function(){alert('unsafe');}";
var all = begin + opentag + stuff;
window.open(all);
} catch (e) {
alert("errr");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>
Click ME
</button>
Chaque fenêtre fonctionne dans son propre thread Javascript qui fonctionne de manière asynchrone avec d'autres fenêtres. – Barmar
Ce n'est pas un problème de code s'exécutant dans une autre fenêtre. C'est, l'URL à ouvrir peut être invalide et si c'est le cas, je veux attraper l'exception. – RodgerTheGreat