Pregunta

Así que mi sitio utiliza shadowbox para hacer mostrar algún texto dinámico.El problema es que necesito que el usuario sea capaz de copiar y pegar texto.

Haciendo clic derecho y seleccionando copiar obras, sino Ctrl+C no (no hay atajos de teclado) y la mayoría de la gente usa Ctrl+C?Puede ver un ejemplo de lo que estoy hablando aquí.

Basta con ir a la web "" ejemplos y haga clic en "en línea".Aviso de métodos abreviados de teclado para trabajar sobre la "esta página" ejemplo.La única diferencia entre los dos que yo veo es que el jugador js archivos en uso."Inline" utiliza el html.js jugador y "esta página utiliza" iframe.js.También, creo que utiliza la biblioteca mootools.Alguna idea?

¿Fue útil?

Solución

La mejor opción es desactivar la navegación por teclado los accesos directos en el shadowbox mediante el establecimiento de la "enableKeys" opción a false (ver esta página).

Alternativamente, usted puede hacer lo que Robby sugiere y modificar el shadowbox.js archivo, pero sólo lo hará si usted necesita tener el shadowbox teclado de navegación.Creo que usted desea buscar para este bloque de código y modificarlo para que sólo se cancela el evento predeterminado si uno de los accesos directos se utiliza (he añadido algunos saltos de línea y sangría):

var handleKey=function(e){
    var code=SL.keyCode(e);
    SL.preventDefault(e);
    if(code==81||code==88||code==27){
        SB.close()
    }else{
        if(code==37){
            SB.previous()
        }else{
            if(code==39){
                SB.next()
            }else{
                if(code==32){
                    SB[(typeof slide_timer=="number"?"pause":"play")]()
                }
            }
        }
    }
};

Creo que se podría cambiar para ser más parecidos a esto:

var handleKey=function(e){
    switch(SL.keyCode(e)) {
        case 81:
        case 88:
        case 27:
            SB.close()
            SL.preventDefault(e);
            break;

        case 37:
            SB.previous()
            SL.preventDefault(e);
            break;

        case 39:
            SB.next()
            SL.preventDefault(e);
            break;

        case 32:
            SB[(typeof slide_timer=="number"?"pause":"play")]()
            SL.preventDefault(e);
            break;
    }
};

Esto debería evitar que el shadowbox controlador de eventos de la ingestión de cualquiera de las pulsaciones de teclado que no le importan.

Otros consejos

Este problema es causado por algún JavaScript que se come los eventos de teclado.Usted puede golpear la tecla de escape, por ejemplo, que es atrapado por uno de los .js archivos y hace que la sombra del cuadro de cierre.

Sus opciones son para cortar a través de los archivos y encontrar el problema, o no uso shadowbox.Buena suerte!

La solución es establecer la enableKeys opción falsa.Sin embargo, esto no parece trabajar en una llamada open() para inline HTML.Funciona, sin embargo, si se establece en su init() de la llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top