2017-12-19 6 views
0

Ich versuche, JSON-Daten (anstelle einer Zeichenfolge) mit HTML5 Drag-and übertragen -Transfer JSON mit dataTransfer.setData mit Drag and Drop

Drop Wenn ein Drag gestartet wird Sie die Daten festlegen können:

e.originalEvent.dataTransfer.setData("application/json", {x: 10}); 
}, 

Und wenn der ziehbar fallen gelassen wird

e.originalEvent.dataTransfer.getData("application/json"); 

Aber was auch immer ich tue, es ist immer eine Zeichenfolge. Wie kann ich ein tatsächliches Objekt übertragen?

Antwort

0

JSON ist eine Zeichenfolgendarstellung Ihrer Daten (z. B. Daten eines serialisierten Objekts). Deshalb erhalten Sie ein String-Ergebnis.

Wenn Ihr serialisiertes Objekt eine Eigenschaft mit einem eindeutigen Bezeichner (ID) enthält, können Sie die ID aus der json-Struktur lesen und auf Ihr Quellobjekt verweisen (z. B. Quellobjekt über ID abrufen).

Um ein HTML5-Element anhand seiner ID zu erhalten, können Sie die JavaScript-Funktion getElementById verwenden. Siehe https://www.w3schools.com/jsref/met_document_getelementbyid.asp

+0

Ich kann deine Antwort nicht wirklich mit meiner Frage verbinden, sorry. Meine Frage ist über Drag & Drop und wie JSON/Objekte anstelle einer Zeichenfolge zu übertragen –

+0

Soweit ich Ihre Frage verstehe, möchten Sie ein Element per Drag & Drop innerhalb einer HTML5-Position ziehen. Das Element hat eine ID. Drag & Drop erstellt ein Ereignis. Das Ereignis transportiert eine "Nachricht". Diese Nachricht ist eine JSON-Struktur (eine Zeichenfolge) in Ihrer Erklärung. Ja, es wurde durch Ziehen eines Objekts verursacht - aber das Ereignis transportiert nur eine Nachricht, nicht das Objekt selbst. Ich habe beschrieben, wie Sie den Bezeichner des Quellobjekts (den Sie Ihrer json-Struktur hinzufügen müssen) extrahieren können, um das Quellobjekt danach zu finden. Aber vielleicht habe ich deine Frage völlig missverstanden; Wenn ja, fügen Sie bitte weitere Usecase-Informationen hinzu. –