Como faço para impedir que sites (em um navegador) me tratem de forma diferente por causa da minha preferência do sistema operacional?

1

Um site que eu uso tem uma verificação do navegador e porque meus navegadores indicam que são Linux, e não Windows ou Mac, aparece (em todas as páginas) um aviso de que estou usando um "sem suporte" "OS.
Eu tentei falsificar o agente do usuário, mas o Chrome parece não estar salvando essa configuração, e as extensões do agente de usuário parecem ser ineficazes.

A detecção do navegador parece estar agrupada em um único arquivo javascript. Então, eu acho que se eu puder colocar uma lista negra ou banir esse arquivo, então ele vai parar de me incomodar sobre o meu sistema operacional "não suportado".

Então, como eu iria fazer listas negras ou proibir esse arquivo? Soluções que funcionam para vários navegadores são um bônus.

    
por killermist 14.02.2013 / 00:43

2 respostas

1

Você pode obter o mesmo resultado com um script de usuário. Ele não impedirá o carregamento do JavaScript externo, mas desativará as funções do JavaScript alert() e confirm() . Remover o banner com JavaScript pode causar cintilação, mas você pode injetar CSS para ocultá-lo.

Script de usuário

// ==UserScript==
// @name        No Nagging
// @description Disables nagging on harrison.edu
// @version     1.2
// @include     *://harrison.edu/*
// @include     *://*.harrison.edu/*
// @run-at      document-start 
// ==/UserScript==

var script = document.createElement('script');
var style = document.createElement('style');

script.appendChild(document.createTextNode(
    'window.alert=function(){};' + 
    'window.confirm=function(){};'
));

style.appendChild(document.createTextNode(
    '.topmenubar{display:none;}'
));

var interval = setInterval(function() {
    if (document.head) {
        document.head.appendChild(script);
        document.head.appendChild(style);
        clearInterval(interval);
    }
}, 10);

Como funciona

As primeiras quatro instruções criam elementos <script> e <style> . O JavaScript dentro de <script> substitui as funções globais alert() e confirm() pelas funções vazias; o CSS dentro de <style> oculta o banner.

<script>
    window.alert=function(){};
    window.confirm=function(){};
</script>

<style>
    .topmenubar{display:none;}
</style>

Em seguida, criamos um intervalo que verifica a cada 10 ms no elemento <head> que já existe.

Quando isso acontece, acrescentamos os elementos criados a <head> e cancelamos o intervalo.

Como instalar

  1. Salve o script como no-nagging.user.js .

    • Abra chrome://extensions .

    • Arraste no-nagging.user.js para a guia aberta.

    OR

    • Feche o Chrome e reabra-o executando o seguinte comando:

      google-chrome --easy-off-store-extension-install
      
    • Arraste no-nagging.user.js para a barra de endereço.

  2. Clique em Adicionar .

por 14.02.2013 / 03:57
3

Você pode usar um bloqueador de anúncios como AdBlock . Você pode então bloquear o arquivo por seu URL.

    
por 14.02.2013 / 00:47

Tags