Frage

Ich versuche, den Inhalt der Zwischenablage mit Javascript zu lesen. Mit dem Internet Explorer ist es möglich, die Funktion mit

window.clipboardData.getData("Text")

Gibt es eine ähnliche Art und Weise über die Zwischenablage in Firefox, Safari und Chrome lesen?

War es hilfreich?

Lösung

Safari unterstützt die Zwischenablage während onpaste Ereignisse zu lesen:

Informationen

Sie wollen etwas tun:

someDomNode.onpaste = function(e) {
    var paste = e.clipboardData && e.clipboardData.getData ?
        e.clipboardData.getData('text/plain') :                // Standard
        window.clipboardData && window.clipboardData.getData ?
        window.clipboardData.getData('Text') :                 // MS
        false;
    if(paste) {
        // ...
    }
};

Andere Tipps

Online-Tabellen Haken Strg + C, Strg + V Ereignisse und Transfer Fokus auf ein verstecktes Textarea-Steuerelement und entweder setzen Sie Inhalte auf dem gewünschten neuen Inhalt der Zwischenablage zu kopieren oder lesen Sie dessen Inhalt nach dem Ereignisse für Paste beendet hatte.

NO. Und wenn Sie einen Hack zu tun finden (zum Beispiel alte Version des Flash) hängt nicht von ihm.

Darf ich fragen, warum Sie aus der Zwischenablage lesen? Wenn der Benutzer auf den Inhalt der Zwischenablage zu übergeben will, alles, was sie tun müssen, um Paste.

Ich glaube, die Menschen ein verstecktes Flash-Element verwenden, um die Daten aus der Zwischenablage von den Browsern lesen Sie genannt haben.

Mit @agsamek Vorschlag habe ich einen kleinen Test snipped und bekam es zu arbeiten. In meinem Fall muß ich nach einer frischen Pageload für klebte Eingabe warten, so konzentriere ich mich auf einem Out-of-View-Textbereich und lesen Sie den Text von dort aus.

Sie können diese erweitern, um bestimmte Tasten (Paste-Kombination) und konzentrieren uns dann auf dem verborgenen Bereich zu hören. Es würde auf jeden Fall mehr Arbeit getan werden, wie ich glaube, Sie müssen erneut Fokus dann auf dem letzten fokussierten Element und fügen Sie Inhalte dort.

Für meinen Anwendungsfall obwohl dies genug war, um es in neuestem Chrome und Firefox funktioniert. Vorschläge willkommen.

https://jsfiddle.net/wuestkamp/91dxjv7s/11/

$(function () {

    $('body').prepend('<input type="text" id="hidden_textbox" style="position: absolute; width:0px; height: 0px; top: -100px; left: -100px">');

    var $hiddenTextbox = $('#hidden_textbox');
    $hiddenTextbox.focus();

    $(document).on('paste', function () {
        setTimeout(function () {
            var val = $hiddenTextbox.val();

            console.log('pasted: ' + val);

        }, 50);

    });

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