2017-11-17 1 views
1

Diese Liste der Zwischenablage-Formate bezeichnet:Welche Zwischenablageformate werden von HTML5-Drop-Zielen unterstützt?

https://msdn.microsoft.com/en-us/library/windows/desktop/ff729168(v=vs.85).aspx

ich ein HTML5-Drop-Ziel auf einer Seite und rumgespielt von Daten aus verschiedenen Anwendungen in sie erstellt haben, ziehen.

Wenn ich das Javascript debuggen, kann ich Daten im Objekt event.dataTransfer für jedes finden. Die einzige Ausnahme war das Ziehen von einem Baum-Steuerelement in SAP GUI, auf dem ich eigentlich bin. In diesem Fall ist die Liste dataTransfer.item leer, ebenso wie die .type-Liste. Aufruf dataTransfer.getData() gibt nichts zurück.

Ich habe dies in IE, Chrome und Firefox mit dem gleichen Ergebnis versucht.

Meine Untersuchung hat mich zu der Annahme geführt, dass die Unterstützung bestimmter Zwischenablageformate für HTML5 eingeschränkt ist. Welche Formate werden unterstützt?

Was ich gerne tun könnte, ist in den Inhalt der Zwischenablage zu bekommen (wie unten im ersten Update gezeigt).

UPDATE 2

Unten finden Sie den Code der Seite. Ich setze Haltepunkte in der drop() Funktion, von wo ich das Ereignisobjekt analysieren kann.

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"> 
<style> #drop_target {width: 350px; height: 70px; padding: 10px; border: 1px solid #aaaaaa; } </style> 
</head> 
<body> 
<div id="drop_target"></div> 
</body> 
<script> 

var drop_target = document.getElementById('drop_target'); 

function allowDrop(ev) { 
    ev.preventDefault(); 
} 
function drop(ev) { 
    ev.preventDefault(); 
    console.log(ev.dataTransfer.types.length); 
    console.log(ev.dataTransfer.getData("text")); 
} 

drop_target.addEventListener('dragover', allowDrop, false); 
drop_target.addEventListener('dragenter', allowDrop, false); 
drop_target.addEventListener('drop', drop, false); 

</script> 
</html> 

UPDATE 1

ich ein schönes Tool aus dem Code Project gefunden ClipSpy genannt, die mir den Inhalt des Drag-Ereignis sehen können, und es sieht wie folgt aus:

enter image description here

Vergleichen Sie das mit etwas wie dem Folgenden, wenn Sie einen Textabschnitt aus meinem Browser ziehen:

enter image description here

Ich denke, die Frage wird jetzt mehr in den folgenden Zeilen: Wie kann ich auf die Roh-Drag-Ereignisdaten in Javascript zugreifen?

Antwort

0

Nach etwas mehr an der W3-Spezifikation in Bezug auf „Zwischenablage-API und Ereignissen“ auf der Suche stieß ich auf den folgende:

clipboard

Das clipboard Attribut ist eine Instanz des Datatransfer-Schnittstelle Mit diesem Skript können die Werte in der Systemzwischenablage während benutzerinitiierter Kopien gelesen und bearbeitet werden. Ausschneiden und Einfügen Operationen. Der zugehörige Ziehdatenspeicher ist eine Live- aber gefilterte Ansicht der Systemzwischenablage, die obligatorische Datentypen freigibt, die die Implementierung weiß, auf die das Skript sicher zugreifen kann. Bei synthetischen -Ereignissen enthält der Ziehdatenspeicher die vom Skript hinzugefügten Daten, die das Ereignis erstellt haben.

Die „obligatorische Datentypen“ es spricht über Links zu (im selben Dokument):

https://www.w3.org/TR/clipboard-apis/#mandatory-data-types

Wo es eine Liste der Zwischenablage-Formate, die scheinbar unterstützt (oder gemeint durch Implementierungen der Spezifikation unterstützt werden).

In diesem Fall muss ich feststellen, dass benutzerdefinierte Zwischenablage-Formate wahrscheinlich nicht unterstützt werden.

Verwandte Themen