Este artículo describe cómo JS abre una nueva ventana para evitar que el navegador bloquee. Compártelo para su referencia. El análisis específico es el siguiente:
Abrir una nueva ventana utilizando el método Window.open () tradicional será bloqueado por el navegador. Entonces, ¿cómo podemos hacer que JS abra una nueva ventana sin ser bloqueadas por el navegador? En realidad, todavía hay soluciones, aquí analizaremos cómo resolver este problema.
Recientemente he encontrado tal problema, por lo que compartiré con ustedes el método de aparecer una nueva ventana. Todos son bienvenidos a agregar ...
El primero es usar el método nativo de JavaScript.open () (en la mayoría de los casos, se bloqueará por navegación)
El segundo tipo es simular el envío de formularios. El principio es especificar que la acción del formulario es la dirección de URL que desea abrir, y el objetivo está configurado en "_Blank"
La copia del código es la siguiente: document.getElementById ("msgtxt"). Innerhtml = "<form id = 'hiddenlink' action = '"+shref+"' target = '_ en blanco'> <input = 'Hidden' name = 'Object' value = '"+objvalue+"'> </form>";
var s = document.getElementById ("HiddenLink");
S.Submit ();
Sin embargo, el método de envío de formulario simulado también puede bloquearse ...
Se hace clic en el tercer tipo, se hace clic en hipervínculo simulado (<a>)
Cuando se presiona un botón, si desea abrir una nueva pestaña, puede simular el enlace que se presiona y luego abrir el enlace.
Sin embargo, en jQuery, utilizando a.click (), a.rigger ('hacer clic'), etc., no hará que el evento predeterminado del enlace se ejecute.
El siguiente código simula el evento de clic del enlace y luego ejecuta el evento donde el enlace se abre de forma predeterminada.
Sin embargo, vale la pena señalar que: para el navegador IE, la función de documento.
La copia del código es la siguiente: var a = $ ("<a href = 'http: //www.test.com' target = '_ en blanco'> test </a>") .get (0);
var e = document.createEvent ('MouseEvents');
E.InitEvent ('hacer clic', verdadero, verdadero);
a.dispatchevent (e);
El cuarto tipo: incidente burbujeante usando el navegador (reimpreso)
La copia del código es la siguiente: clickopenwin: function (f) {
var datakey = "clickopenwin.datakey"
var me = $ (esto);
var a = me.data (datakey);
var returnData = null;
if (! a) {
A = $ ("");
me.data (datakey, a);
A. Haga clic (Función (E) {
if (returnData) {
A.attr ("href", returnData);
}demás {
A.before (yo);
molestar();
}
});
}
me.mouseover (function () {$ (this) .before (a) .appendto (a);});
me.mouseout (function () {a.bebore ($ (this));});
me.click (function () {
A.attr ("href", "#|");
returndata = f.apply (this, argumentos);
});
}
1). Primero, hablemos sobre el efecto final, que es usar "A" para contener los elementos que desea activar la ventana emergente. El evento de clic original volverá a la URL emergente. Correspondiente a esta oración: Copie el código del código de la siguiente manera: returnData = f.apply (this, argumentos);
2). Luego hablaremos sobre la estrategia de bloqueo emergente. No hablaré de los específicos. De todos modos, la estrategia no interceptará "un" en sí.
3). Finalmente, se sintetiza. Después de usar A para incluirlo, debido a que el evento burbujea, use clics normales para generar una dirección de enlace dinámico a A, activando el evento de clic original de A, y luego se completa.
Espero que este artículo sea útil para la programación de JavaScript de todos.