Hay una manera de detectar si la fuente de descargas de la propiedad en internet explorer está deshabilitado o habilitado?

La actualidad, si yo fuera a implementar un @font-face solución (font-ardilla o typekit o de otro tipo) para la fuente de representación, todos los navegadores se juega bonito excepto si internet explorer tiene su «Descarga de la Fuente» opción deshabilitada.

Esta configuración se puede encontrar en IE > Opciones de Internet > Seguridad > Nivel Personalizado > Descargas > descarga de la Fuente > Activar/Desactivar.

Si puedo detectar esta opción, yo podría recurrir a métodos de javascript.

Estas soluciones no funcionan como esta opción no desactivar la función, se impide que la descarga se produzca:

  • http://paulirish.com/2009/font-face-feature-detection/
  • http://www.lalit.org/lab/javascript-css-font-detect/

EDIT: debo mencionar que no podemos utilizar una solución de servidor, debe ser puramente secuencias de comandos de cliente.

OriginalEl autor Scorpius | 2011-11-01

3 Comentarios

  1. 6

    Como esta característica evita que la descarga se produzca, un (sucio) solución sería pedir IE para descargar un llamado de la fuente que en realidad es un simple script en el servidor que lo pone por ejemplo. una cookie diciendo: «bien él gots la fuente» y devuelve una página en blanco. Cuando el usuario carga la página siguiente, que va a implementar el código Javascript de la maquinaria, si la cookie no está allí.

    detectar si la descarga de fuentes en internet explorer está habilitada

    Esta fue mi primera idea, pero no podemos utilizar cualquier lado del servidor scripting para este proyecto en particular. En cualquier caso, ¿cómo se podía simular una descarga de la fuente como con @font-face? A partir de ahora, he estado tratando de hacer un ajax obtener de la fuente misma, y se pone y se descarga correctamente, incluso cuando la fuente de la descarga está deshabilitado.
    Descarga usando JS, obviamente, el trabajo de lo que sea la opción. tenía para pedir IE para descargar la fuente por poner un @font-face que conduce a la secuencia de comandos he explicado, así que usted puede ver si el navegador descarga o no. Si usted no puede hacer nada en el servidor, bueno, creo que estás jodido.

    OriginalEl autor zopieux

  2. 5

    Me doy cuenta de que esta pregunta es viejo, pero es un problema que todavía existe para algunos corporativa de los usuarios de internet con estricta seguridad de TI. Miré en las soluciones anteriores y otros, pero que no funcionan bien para mí, así que he encontrado otra solución que no requiere de código del lado del servidor, no de javascript, y no css. Su esencia mágica, pero tiene algunas limitaciones.

    Limitación 1: Esto sólo funcionará para los iconos de las fuentes que el uso de un alto número de puntos de codificación para mostrar imágenes. No va a funcionar para el tipo de letra fuentes para texto legible.

    Limitación 2: Usted debe encontrar un estándar UTF-8 símbolo que es un reemplazo adecuado para su icono personalizado.

    Por ejemplo, si usted tiene un tipo de letra personalizado que puede utilizar para mostrar un símbolo de estrella, un adecuado respaldo para que este sería el punto de código unicode 0x2605 ★. Así, en la fuente de generación de código, usted tendría que duro código de punto de código de su clase css para tu icono de estrella. Si se utiliza «grunt-webfont» se podría hacer algo como esto en su grunt archivo:

    webfont: {
        icons: {
            options: {
               codepoints: {
                  'star': 0x2605
           ...
    }}}}

    La estrella es un ejemplo perfecto; puede ser difícil encontrar un adecuado UTF8 reemplazo para su fantasía iconos, de manera que este puede no funcionar para todos. Teniendo en cuenta que este problema afecta a un número muy pequeño de usuarios, nos pareció que esta era una adecuada solución transparente que no tuvo impacto en los usuarios regulares con extra js/css/cookie resto.

    OriginalEl autor Jake

  3. 4

    Basa en @Zopieux de diagrama de flujo, que fue capaz de hacer este trabajo de la escritura para IE6-9 cuando la fuente-la descarga de movilidad, que en mi caso era para un cliente donde, al igual que otras intranets corporativas tienen esta opción desactivada.

    CSS:

    @font-face {  
        font-family: 'TestFont';  
        src: url('/includes/font.php?type=eot');  
        src: url('/includes/font.php?type=eot#iefix') format('embedded-opentype'),  
         url('/includes/font.php?type=woff') format('woff'),
         url('/includes/font.php?type=ttf') format('truetype'),
         url('/includes/font.php?type=svg#UniversLTStd49LtUltraCn') format('svg');
        font-weight: normal;  
        font-style: normal;  
    }  

    PHP, cuando el font-face src url es solicitado, se saca esta secuencia de comandos, la cual se verifica el tipo, establece la cookie, y que sirve a la webfont de elección. Si la fuente se activa la descarga y no volver a la ruta para el archivo de la fuente, es decir, va a lanzar un @font-face de error:

    <?php
    $type = $_REQUEST['type'];
    $location = "Location: /includes/fonts/universltstd-lightultracn-webfont.".$type;
    
    //create a cookie
    setrawcookie("FontDownloaded", 1, time()+3600*24, '/');
    header($location);
    
    ?>

    JS, a continuación, en el lado del cliente, hacer algo como esto para comprobar la cookie, y realizar la alternativa como cufon-yui.js o typeface.js:

    $(function() {
        $('body').append('<span id="TestFont"/>');
        $('#TestFont').html('Testing').css({
            fontFamily: 'TestFont',
            opacity: 0
        });
    
        //find cookie
        bool = Boolean(getCookie('FontDownloaded')); //use your own cookie method
    
        if (!bool) {
            //implement @font-face fallback        
            Cufon.replace('.items', { fontFamily: 'NewFont' });
        }
        $('#TestFont').remove();
    });

    OriginalEl autor Scorpius

Dejar respuesta

Please enter your comment!
Please enter your name here