¿Por qué los navegadores no son fiables y bloquean los elementos emergentes?

3

Tanto en Chrome como en Firefox no puedo bloquear de forma confiable las ventanas emergentes sin extensiones. Aunque ambos navegadores vienen con estas configuraciones, parece que hay formas de evitar este comportamiento.

Ahora porque es eso? ¿Cómo pueden los sitios abrir ventanas emergentes de todos modos?

    
pregunta jannikb 04.03.2017 - 06:26
fuente

3 respuestas

1

Como un webdev a largo plazo, he visto evolucionar esto desde IE6. Esto es todo por diseño y consideración en realidad. Las acciones legítimas deseadas por el usuario no deben ser bloqueadas. Muchos portales corporativos utilizan ventanas emergentes, al igual que el correo electrónico basado en la web, los mensajes, los reproductores multimedia y más. Para los desarrolladores, "Popups" y "popunders" son aperturas inesperadas e inesperadas de sub-ventana para ser exactos. Si un sitio lanza una ventana emergente, es porque hiciste algo.

Las reglas de Firefox, Chrome y Safari son idénticas: si la ventana emergente sucede como resultado de una acción del usuario, como un clic o una pulsación del teclado, está permitido. Si la ventana emergente ocurre por sí misma, está bloqueada.

¿Cómo determina el navegador qué causó la acción? JavaScript tiene una forma de rastrear a la persona que llama las funciones y subfunciones de manejo de eventos hasta una acción física del usuario, como un clic. Si no encuentra a una persona que llama en la pila de llamadas del código de inicio emergente, la ventana emergente se bloquea. Los desarrolladores generalmente no pueden extender la acción iniciada por el usuario hasta más tarde, tienes que window.open() de inmediato o, de lo contrario, se bloquea. Las extensiones pueden bloquear lo que quieran, independientemente de la intención del usuario o su falta. Los enlaces / formularios con target=_blank solo se activan como resultado de la acción del usuario, por lo que ni siquiera se deben auditar.

    
respondido por el dandavis 02.08.2017 - 05:04
fuente
0

El sitio que omite esa configuración no lo abrirá en una nueva pestaña, sino en otra ventana con el comando: window.open . También hay este comando target="_blank" pero solo una nueva pestaña, (no estoy seguro de esto) y este tipo de comando está bloqueado por el bloqueador de elementos emergentes del navegador de forma predeterminada
El bloqueador no reconoce fácilmente el window.open , por lo que puede abrir la ventana emergente, de todos modos las extensiones hacen un mejor trabajo al respecto.

    
respondido por el d. fritoti 04.03.2017 - 20:36
fuente
0

Porque "ventana emergente" es un término genérico para una variedad de métodos de visualización de datos en una ventana o modal que se muestra en una determinada acción. No hay una sola forma de crear y mostrar un pop-up, como no hay una sola manera de hacer nada en el mundo de la programación y el desarrollo web. Los sitios pueden usar una variedad de funciones de javascript (especialmente si también usan bibliotecas como jQuery o cualquier otro marco de javascript que haga que la visualización de los modales sea trivial) o incluso un buen HTML para mostrar estas ventanas, por lo que es una solución para eliminar De ellos es difícil de implementar.

Hablando específicamente con jQuery, los desarrolladores tienen una gran cantidad de activadores que pueden usar para mostrar ventanas emergentes, y esas ventanas emergentes pueden tomar la forma de una nueva pestaña, nueva ventana, creando un nuevo elemento HTML que se muestra y muestra una Elemento HTML oculto / invisible, y la lista continúa ...

Por ejemplo, podría establecer 3 disparadores diferentes para 3 tipos diferentes de ventanas emergentes de manera muy simple en una página. El primer activador creará una ventana emergente cada vez que el usuario desplace el cursor sobre un div grande que abarca la mitad superior de mi página. El segundo activador se abrirá cada vez que un usuario seleccione / resalte cualquier texto en cualquier lugar de la página, y se mostrará justo encima del cursor (práctica muy común con muchos proveedores de anuncios que apuntan al texto resaltado específico). El disparador final puede ser simplemente cuando un usuario hace clic en un botón, o para ser un poco más sigiloso, un enlace en la página. Cuando hagan clic en este enlace, hará dos cosas: primero, activará un evento onclick de javascript que he configurado para abrir un enlace de publicidad predeterminado en una nueva ventana; en segundo lugar, realmente redirigirá al usuario a la ubicación deseada del enlace mismo.

Nuevamente, estos son ejemplos muy simplificados sin código para mostrarlos (consulte enlace para ver algunos ejemplos de lo que pueden hacer los modales) pero Los conceptos son muy reales y muy en uso en la naturaleza. Es importante tener en cuenta que no todas las ventanas emergentes son nefastas o no son spam, y debe usar su propio criterio y discreción para permitir o no bloquearlas en cada sitio.

    
respondido por el Blue 03.06.2017 - 01:04
fuente

Lea otras preguntas en las etiquetas