Un tempo, il classico metodo per molestarti con pubblicità e/o inviti ad iscriverti a servizi et similari, erano i popups.

Ormai sono anni che circolano estensioni per i brosers "anti popup" e addirittura "anti pubblicità" ed i browsers stessi nel corso degli anni, si sono adeguati integrando tali funzionalità direttamente al loro interno.

Di recente, con l'avvento del web 2.0 e dei socials, i popups ormai sono storia passata ed entrano in gioco i "layers" sovrapposti al sito. Per farvi un esempio pratico, andate a questo indirizzo: http://it.emcelettronica.com/raspberry-pi-casa-domotica-e-videosorveglianza-gestibile-da-remoto-con-assistente-personale

Noterete che per visualizzare tale articolo, dovrete per forza cliccare sul tasto "Mi piace" alla loro pagina Facebook... se fate caso però, al di sotto di questa "finestrella" con sfondo scuro, c'e' la pagina pronta per esser letta.

Così ho pensato fosse utile, creare un bookmarklet che parte dai layers piu' alti e li rimuove di volta in volta, click per click.

Questo perchè non tutti i siti sono uguali ed alcuni impostano come "altezza" del layer pubblicitario un numero che puo' essere minore rispetto a quello degli altri siti. Se impostassi un'altezza fissa, il bookmarklet funzionerebbe soltanto su un ristretto numero di siti, mentre con questo sistema andrà bene per qualsiasi sito poichè scansiona TUTTI i layers, partendo da quelli piu' alti e scendendo di UN livello per ogni click, fino a quando la pagina risulta pulita e leggibile.

tieni premuto sul seguente collegamento e trascinalo sulla barra dei preferiti: NBCHMM Page Cleaner

Di seguito, la versione compressa e pronta per il bookmarklet

javascript:var a=document.getElementsByTagName("*"),b;for(b in a){var c=parseInt,d=a[b],e="string"==typeof d?document.getElementById(d):d;if(window.getComputedStyle)var f=document.defaultView.getComputedStyle(e,null).getPropertyValue("z-index");else e.currentStyle&&(f=e.currentStyle["z-index"]);90<=c(f)&&(console.log("hiding element"),console.log(a[b]),a[b].style.display="none")};

Di seguito, la versione non compressa
function getStyle(el,styleProp)
{
    if (typeof el == 'string') var x = document.getElementById(el);
    else x = el;

    if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
     else if (x.currentStyle)
         var y = x.currentStyle[styleProp];
     return y;
}
var x=(typeof x=='undefined')?100:x-1,
    els=document.getElementsByTagName('*');
for(var y in els)
    if (parseInt(getStyle(els[y],'z-index'))&gt;=90){
        console.log('hiding element');console.log(els[y]);
        els[y].style.display='none';
    }

P.s.: un altro valido esempio di sito con un "blocco" html, è ImageShack... quando provate ad inviare un immagine, comparirà il famigerato layer che ti obbliga ad iscriverti al servizio.

1 commenti:


I'll immediately grab your rss as I can not in finding your e-mail subscription link or newsletter service. Do you have any? Kindly let me realize so that I could subscribe. Thanks. www.gmail.com login

Posta un commento

Visualizzazioni totali