2012-12-11 5 views
9

You can capture an image. Ich versuche herauszufinden, wie man Text erfasst. Ich vermute, da ist es nicht, aus Sicherheitsgründen, aber ich wollte sicher gehen.In Chrome, gibt es mit dem window.Clipboard-Objekt eine Möglichkeit, eingefügten Text zu erfassen?

Gibt es auch eine Referenz für dieses Zeug? window.Clipboard Objekt ist nicht Teil der V8-Engine, es ist ein Teil des Chrome-Browsers und ich kann keine offizielle Dokumentation dafür finden.

+2

Hier sind die Angaben für die Zwischenablage Elemente, die Sie gerade arbeiten: http://www.w3.org/TR /2011/WD-html5-20110113/dnd.html#the-datatransferitem-interface. – pimvdb

Antwort

13

Im Code verknüpfen Sie sich eine ist pasteHandler Funktion mit dem folgenden:

// Get the items from the clipboard 
     var items = e.clipboardData.items; 
     if (items) { 
      // Loop through all items, looking for any kind of image 
      for (var i = 0; i < items.length; i++) { 
       if (items[i].type.indexOf("image") !== -1) { 
        // We need to represent the image as a file, 
        var blob = items[i].getAsFile(); 
        // and use a URL or webkitURL (whichever is available to the browser) 
        // to create a temporary URL to the object 
        var URLObj = window.URL || window.webkitURL; 
        var source = URLObj.createObjectURL(blob); 

        // The URL can then be used as the source of an image 
        createImage(source); 
       } 
      } 
     } 

Chrome Entwicklerrahmen sagt mir, dass Artikel [i] eine Seite DataTransferItem(reference)

Auf der Referenz ich sehe eine kind Eigenschaft und eine getAsString() Methode. Letzteres scheint eine Callback-Funktion zu benötigen, die den Text als Parameter erhält. So Textwerte zu handhaben Sie das Skript verwenden Sie können den Abschnitt ändern I verknüpft wie folgt:

// Get the items from the clipboard 
     var items = e.clipboardData.items; 
     if (items) { 
      // Loop through all items, looking for any kind of image 
      for (var i = 0; i < items.length; i++) { 
       if (items[i].type.indexOf("image") !== -1) { 
        // We need to represent the image as a file, 
        var blob = items[i].getAsFile(); 
        // and use a URL or webkitURL (whichever is available to the browser) 
        // to create a temporary URL to the object 
        var URLObj = window.URL || window.webkitURL; 
        var source = URLObj.createObjectURL(blob); 

        // The URL can then be used as the source of an image 
        createImage(source); 
       } 
       if (items[i].kind === "string"){ 
        items[i].getAsString(function(s) { 
         alert(s); 
        }); 
       } 
      } 
     } 
+1

+1 Ich habe es gerade auf die gleiche Weise herausgefunden :) Hier ist eine Demo: http://jsfiddle.net/8kEAF/1/. – pimvdb

+0

Probieren Sie es einfach aus. Es klappt. Vielen Dank. – user1895546

Verwandte Themen