2016-08-31 4 views
1

Früher erhielt die Anwendung den Inhalt der Zwischenablage aus window.clipboardData.getData ('Text'). Dies wird in Firefox und Chrome nicht unterstützt.Cross-Browser-JavaScript Einfügen

Für Kopie wurde Document.execommand ('copy') aufgerufen, um UI-Inhalte in die Zwischenablage zu bekommen. Da document.execommand ('copy') in Firefox und Chrome unterstützt wird, funktioniert es dort.

Während document.execommand ('paste') während des Einfügens false in firefox zurückgibt, obwohl document.queryCommandSupported ('paste') true ist, ist document.queryCommandEnabled ('paste') false in firefox und chrome aber es gibt wahr in IE zurück. Gibt es eine Möglichkeit in Javascript, um document.execommand ('einfügen') wahr zu machen?

Es gibt eine Schaltfläche onclick, die den Inhalt in die UI einfügen soll. In dieser Anwendung werden im Grunde genommen Tabellenzeilen aus den Daten der Zwischenablage angehängt. ClipboradData wird erfasst, indem ctrl + c ctrl + v-Ereignisse abgefangen werden. Aber ich möchte den Zugriff auf ClipboradData, Onclick-Ereignis oder Zugriff auf die Zwischenablage Daten über document.execommand ('Einfügen'), die falsch (in Firefox und Chrome) zurückgibt.

function paste() { 

    var input = document.createElement('TEXTAREA'); 
    input.setAttribute('name', 'post'); 
    input.setAttribute('maxlength', 5000); 
    input.setAttribute('cols',80); 
    input.setAttribute('rows', 40); 
    document.body.appendChild (input); 
    input.contentEditable = true; 
    input.focus(); 
    if(document.queryCommandEnabled('paste')){ 
     document.execCommand('paste',false,null); 
     result=input.value; 
    } 
    document.body.removeChild(input); 
    return result; 
} 

Bitte geben Sie mir eine Lösung zum Einfügen aus der Zwischenablage.

Antwort

0

Leider können Sie aus Sicherheitsgründen document.execCommand ('paste') nicht verwenden, um die Zwischenablagedaten aus normalem Javascript zu lesen. Sie müssen dazu eine Web-Erweiterung erstellen.

+0

Google Docs scheint dies ohne eine Erweiterung zu tun – bnieland

+0

@bnieland Wenn Sie Chrome verwenden, ist es wahr (es direkt mit seinem nativen Client), wenn Sie Firefox verwenden, dass es nicht funktionieren wird. –

+0

Ich habe es nicht getestet, aber es scheint, dass Google Docs * eine Erweiterung verwendet. – bnieland

Verwandte Themen