Perché i browser non bloccano i pop-up?

3

Sia su Chrome che su Firefox non riesco a bloccare in modo affidabile i popup senza estensioni. Sebbene entrambi i browser siano dotati di tali impostazioni, sembra esserci un modo per aggirare questo comportamento.

Ora perché è così? In che modo i siti sono in grado di aprire comunque i popup?

    
posta jannikb 04.03.2017 - 06:26
fonte

3 risposte

1

Come webdev a lungo termine, ho visto questo evolversi da IE6. Questo è tutto per design e considerazione in realtà. Le azioni legittime desiderate dall'utente non devono essere bloccate. Molti portali aziendali utilizzano i popup, così come le e-mail, i messaggi multimediali, i lettori multimediali e altro. Per gli sviluppatori, "Popups" e "popunders" sono aperture di finestre secondarie non previste e impreviste per essere esatte. Se un sito lancia un popup, è perché hai fatto qualcosa.

Le regole per FireFox, Chrome e Safari sono identiche: se il popup si verifica a seguito di un'azione dell'utente, come un clic o una pressione della tastiera, è consentito. Se il popup si verifica da solo, è bloccato.

In che modo il browser determina cosa ha causato l'azione? JavaScript ha un modo per rintracciare il chiamante della / e funzione / i di gestione degli eventi e le funzioni secondarie fino all'azione dell'utente fisico, come un clic. Se non trova tale chiamante sullo stack di chiamate del codice di avvio popup, il popup è bloccato. Generalmente gli sviluppatori non possono estendere l'azione avviata dall'utente fino a un momento successivo, devi subito window.open() oppure è bloccato. Le estensioni possono bloccare tutto ciò che vogliono, indipendentemente dall'intenzione dell'utente o dalla mancanza di esso. I link / moduli con target=_blank vengono attivati solo come risultato dell'azione dell'utente, quindi non è nemmeno necessario controllarli.

    
risposta data 02.08.2017 - 05:04
fonte
0

Il sito che ignora le impostazioni non lo aprirà in una nuova scheda, ma in un'altra finestra utilizzando il comando: window.open . C'è anche questo comando target="_blank" ma è solo una nuova scheda, (non ne sono sicuro) e questo tipo di comando è bloccato dal blocco popup del browser per impostazione predefinita
Il window.open non è facilmente riconosciuto dal blocco, quindi potrebbe aprire il pop-up, comunque le estensioni fanno un lavoro migliore su di esso.

    
risposta data 04.03.2017 - 20:36
fonte
0

Perché "pop-up" è un termine generico per una varietà di metodi di visualizzazione dei dati in una finestra o modale che viene visualizzata su una determinata azione. Non esiste un unico modo per creare e visualizzare un pop-up proprio come non c'è un modo per fare più cose nel mondo della programmazione e dello sviluppo web. I siti possono utilizzare una varietà di funzioni javascript (specialmente se usano anche librerie come jQuery o qualsiasi altro numero di framework javascript che rendono banali le modalit di visualizzazione) o anche il buon vecchio HTML per visualizzare queste finestre, quindi una soluzione completa per liberarsi di essi è difficile da implementare.

Parlando specificamente con jQuery, gli sviluppatori hanno un enorme numero di trigger che possono usare per visualizzare i pop up, e quei popup possono assumere la forma di una nuova scheda, nuova finestra, creando un nuovo elemento HTML che visualizza, visualizzando un precedente elemento HTML nascosto / invisibile e l'elenco continua ...

Ad esempio, potrei impostare 3 diversi trigger per 3 diversi tipi di popup in una sola pagina. Il primo trigger creerà un popup ogni volta che l'utente posiziona il cursore su un div ampio che comprende la metà superiore della mia pagina. Il secondo trigger verrà visualizzato quando un utente seleziona / evidenzia qualsiasi testo in qualsiasi punto della pagina e verrà visualizzato sopra il cursore (pratica molto comune con molti fornitori di annunci che hanno come target il testo evidenziato specifico). Il trigger finale può essere semplicemente quando un utente fa clic su un pulsante, o per essere un po 'più furtivo, un link sulla pagina. Quando fanno clic su questo link, farà due cose: prima attiverà un evento onclick javascript che ho impostato per aprire un link pubblicitario predeterminato in una nuova finestra; in secondo luogo, reindirizzerà effettivamente l'utente alla posizione prevista del collegamento stesso.

Anche in questo caso sono esempi molto semplificati senza codice per mostrarli (controlla link per alcuni esempi di cosa possono fare le modali) ma il i concetti sono molto reali e molto utilizzati in natura. È importante notare che non tutti i popup sono nefandi o contenenti spam e dovresti usare il tuo giudizio e la discrezione sull'opportunità o meno di permetterli / bloccarli in base al sito.

    
risposta data 03.06.2017 - 01:04
fonte

Leggi altre domande sui tag