Frage

Also meine Seite verwendet shadowbox zu tun, zeigen Sie einen dynamischen text.Problem ist, ich brauche die Benutzer werden in der Lage, kopieren und einfügen von text.

Mit der rechten Maustaste und Auswahl von kopieren funktioniert aber Strg+C nicht (keine Tastatur-shortcuts, machen), und die meisten Menschen verwenden Strg+C?Sie können sehen, ein Beispiel von was ich spreche hier.

Gehen Sie einfach auf die "web" - Beispiele und klicken Sie auf "inline".Beachten Sie Tastatur-shortcuts arbeiten, die auf den "diese Seite" - Beispiel.Der einzige Unterschied zwischen den beiden ich sehe, ist der Spieler js-Dateien, die Sie verwenden."Inline" verwendet html.js Spieler und "diese Seite", verwendet iframe.js.Ich glaube außerdem, es nutzt die mootools-Bibliothek.Irgendwelche Ideen?

War es hilfreich?

Lösung

Die beste option ist das deaktivieren von Tastatur-shortcuts in der shadowbox, indem Sie die "enableKeys" - option auf false (siehe diese Seite).

Alternativ könnten Sie tun, was Robby schlägt und ändern Sie die shadowbox.js Datei, aber dies nur tun, wenn Sie brauchen, um die shadowbox die navigation mit der Tastatur.Ich denke, Sie möchten, dass die Suche nach dieser code-block, und ändern Sie es so, dass es nur bricht die Standard-Ereignis, wenn eine der Verknüpfungen verwendet (die ich Hinzugefügt habe, einige Zeilenumbrüche und eingerückt):

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")]()
                }
            }
        }
    }
};

Ich denke, man könnte es ändern, um mehr wie folgt Aussehen:

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;
    }
};

Dies sollte verhindern, dass die shadowbox-event-handler von schlucken alle Tastatureingaben, dass es nicht zu kümmern.

Andere Tipps

Dieses problem wird verursacht durch ein JavaScript, das isst Tastatur-Ereignisse.Sie können drücken Sie die ESC-Taste, für Beispiel, die gefangen ist, die durch eines der .js-Dateien und bewirkt, dass die shadow-box zu schließen.

Ihre Entscheidungen sind zu hacken durch die Dateien und suchen Sie das problem, oder nicht verwenden shadowbox.Viel Glück!

Die Lösung ist, um die enableKeys option auf false.Jedoch, dies scheint nicht zu funktionieren, auf eine open () - Aufruf für inline-HTML.Es funktioniert jedoch, wenn Sie setzen es in Ihre init () - Aufruf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top