2016-06-21 21 views
1

Ich brauche Zugriff auf die Zwischenablage Daten über Keydown-Ereignis in Extjs Combobox, um einige Operationen durchzuführen.
Ich versuchte mit window.clipboardData. finden Sie die Geige: https://fiddle.sencha.com/#fiddle/1cc2Extjs6: Klemmbrett Daten auf Keydown Ereignis der Combobox

Ext.create('Ext.form.field.Tag',{ 
    renderTo:Ext.getBody(), 
    createNewOnEnter:true, 
    store:[1,2,3], 
    enableKeyEvents:true, 
    listeners:{ 
     keydown:function(combo,e){ 
      if(e.getKey() === e.V && e.ctrlKey){ 
       //get Clipboard data here 
       combo.preventKeyUpEvent = e.V; 
       e.stopEvent(); 
      } 
     } 
    } 
}); 

Antwort

1

nicht sicher, was Sie falsch machen, aber es funktioniert in meinem IE11, wenn ich console.log(window.clipboardData) auf Ihre Geige hinzu:

Ext.application({ 
    name : 'Fiddle', 

    launch : function() { 
     Ext.create('Ext.form.field.Tag',{ 
      renderTo:Ext.getBody(), 
      createNewOnEnter:true, 
      store:[1,2,3], 
      enableKeyEvents:true, 
      listeners:{ 
       keydown:function(combo,e){ 

        if(e.getKey() === e.V && e.ctrlKey){ 
         console.log(window.clipboardData); 
         combo.preventKeyUpEvent = e.V; 
         e.stopEvent(); 
        } 
       } 
      } 
     }); 
    } 
}); 

Ich empfehle es verwendet, kann nicht, obwohl, da window.clipboardData ist nur IE. Sie sollten das W3C clipboard API instead verwenden, das ein Entwurf für die Standardisierung und already implemented in all recent browsers ist.

+0

Dank für Sie Zeit Alex. Ich wollte die extjs Kontrolle benutzen. –

4

Ich glaube, Sie paste Ereignis-Listener Ihre Combo hinzufügen können (seine Picker tatsächlich) und Daten aus der Zwischenablage mit Methoden der ClipboardEvent Schnittstelle erhalten, wie folgt aus:

combo.getEl().addListener(
    'paste', 
    function(event, element, options) { 
     var clipboardData = event.browserEvent.clipboardData; 
     console.log(clipboardData.getData('Text')); 
    } 
); 

Working fiddle

+0

Danke Sergey..Das funktioniert und was ich gesucht habe. –