Ziehen: Ersetzen der Daten

8

Ich habe eine Webseite mit einigen HTML-Elementen, einschließlich einer Textfläche und eines eingebetteten content-fähigen iframes (a rte).

Mit diesem Code erhalte ich das Draggesture Event auf der Hauptseite und setze die text / html-data %Vor%

Wenn nun ein Textfeld auf der Hauptseite angezeigt wird, wird 'my_data' gelöscht. Wenn Sie den content-fähigen iFrame löschen, wird auch 'my_data' gelöscht.

Aber ich habe hier drei Probleme, die ich nicht verstehe:

1. Das Binden dieser Art von Handler an das iframes-Dokument funktioniert. Ich setze die Ereignisdaten analog zum obigen Code, aber es funktioniert nicht. Wenn ich es in den iframe oder in den Textbereich auf der Hauptseite ziehe, wird 'my_data' nicht eingefügt, sondern der ursprünglich ausgewählte Inhalt. Was kann ich tun, um 'my_data' zu setzen?

2. Ich habe versucht, die Daten mit dem Ereignis drop im iframe und auf der Hauptseite zu ändern / einzustellen:

%Vor%

Aber ich bekomme einen Javascript-Fehler auf beiden Dokumenten (Hauptseite und iframe): "Änderungen sind für dieses Dokument nicht erlaubt". Warum erhalte ich diesen Fehler? Gibt es einen Workaround dafür? Sieht so aus, als hätte pimvdb eine Erklärung dafür bekommen.

3. Wenn Sie <p>some text</p><hr><p>some text</p> von der Hauptseite auswählen und in den contentediable iframe ziehen, wird nichts eingefügt, wenn ich 'my_data' (auf Draggesture) unter Verwendung des ersten Codebeispiels von oben einstelle. Ziehen in den Textbereich funktioniert. Weiß jemand, was hier falsch läuft? (Problem tritt bei Verwendung von Chrome nicht auf!)

BEARBEITEN: Hier ist eine jsFiddle Demo, um herumzuspielen und das Problem zu verstehen:

Ссылка

    
Thariama 16.09.2011, 09:03
quelle

1 Antwort

2

Sie verwenden draggesture , aber dragstart funktioniert.

Zweitens ist es nicht sinnvoll, die dataTransfer -Daten auf drop zu setzen, da das Drag-Paket bereits angekommen ist. Es wird nach dem Drop zerstört, also warum möchten Sie es an diesem Punkt ändern?

Ich habe deine Geige gereinigt, um genau zu verstehen, was passiert ist, um es lösen zu können, und das ist das Ergebnis. Es scheint in Chrome zu funktionieren.

Ссылка

%Vor%     
pimvdb 20.09.2011 14:02
quelle