Estoy tratando de abrir una nueva pestaña con una URL determinada mediante programación en React.
const navigate = (href) => { try { $(`<a href="${href}" target="_blank"></a>`)[0].click(); } catch (ex) { console.log(ex); window.open(href, `_newtab${Math.floor(Math.random() * 999999)}`) || window.location.replace(href); } };La solución jQuery funciona mejor, sin embargo, no siempre funciona; por ejemplo, en Safari en iPhones, esto no hace nada.
los
window.open(href, `_newtab${Math.floor(Math.random() * 999999)}`) || window.location.replace(href);es menos efectivo ya que a veces abre una ventana emergente y, a veces, abre el nuevo enlace en la misma pestaña que mi aplicación. Sin embargo, funciona en todos los dispositivos.
Lo que me gustaría hacer es probar primero la solución jQuery, y si esto no hace nada, active la segunda opción como respaldo.
Sin embargo, noté que cuando
$(`<a href="${href}" target="_blank"></a>`)[0].click();falla en el iPhone, en realidad no activa una excepción, por lo que el bloque catch nunca se ejecuta.
¿Hay otra manera de abordar esto?
Miré esta pregunta para crear la función anterior: javascript window.ubicación en una nueva pestaña