2016-05-10 10 views
0

Ich habe eine Kopie Zuhörer zu meinem Element in den roten Rechtecke in diesem Screenshot hinzugefügt:Überprüfen Sie, ob ein Teil des Elements innerhalb Kopie

Hervorhebungen jeden Teil in diesem Rechteck und klicken Kopie ist gut, Es kopiert und löst das Ereignis aus. Ich kann es leicht sagen, indem ich das Ziel teste.

Wenn jedoch eine Kopie nach dem Drücken von Strg + A erfolgt, ist das Ziel Körper. Oder wenn ich die Beschriftung über "GOCR" und dann das Rechteck darunter wähle, erhalte ich den ersten Textknoten als Ziel.

Ich möchte in der Lage sein zu sagen, ob die einzelnen Rechtecke in der Kopie sind, ist das möglich?

+0

Ich kann den Screenshot nicht sehen, können Sie eine Geige teilen? – gurvinder372

+0

Warum muss der Benutzer "auswählen" und dann "COPY" drücken. Liegt es daran, dass der Benutzer nicht den gesamten Inhalt möchte? – Tigger

+0

@Tigger richtig, sie können nur einige kopieren, aber das ist nicht das Problem. Wenn sie nur einige kopieren, kann ich immer noch feststellen, dass sie diesen Knoten kopiert haben. Was ich auf der Kopie mache, ist eine Zählung. Der Benutzer weiß also, welche OCR-Methode ihm im Laufe der Geschichte am nützlichsten war. Das Problem ist, wenn sie eine große Auswahl treffen, die eins oder mehrere enthält, in diesem Fall muss ich erkennen, welche Elemente enthalten sind. – Noitidart

Antwort

1

Ich habe darüber nachgedacht und kam mit der Verwendung von CSS, um die Auswahl auf alles außer den auswählbaren Bereichen zu verhindern. Wie so:

<html> 
<head></head> 
<body style="-webkit-user-select:none;-moz-user-select:none;user-select:none;"> 
This is some text in the body. 
<div>ORC: <button id="copy">Copy</button></div> 
<div style="border:1px solid red;-webkit-user-select:text;-moz-user-select:text;user-select:text"> 
Selectable only text area. 
</div> 
</body> 
</html> 

Würde dies in Ihrem Fall funktionieren?

+0

Dank so viel, ich kam auch mit einer Lösung, es verließ sich auf SelectionRange-Objekt. Ich konnte das 'SelectionRange'-Objekt nicht aus dem 'copy'-Event holen, also habe ich gerade eine Annahme gemacht und dann, wenn ein Copy-Event ausgelöst wird, ist es auf der' window.getSelection() '. Ich habe dann 'if (window.getSelection(). ContainsNode (mynode, true)' um festzustellen, ob mein Knoten innerhalb der Kopie und seine Arbeit groß war. Obwohl ich wünschte, ich könnte das 'SelectionRange'-Objekt von' copy' -Ereignis bekommen. Mein Code ist in ReactJS, also habe ich ihn noch nicht veröffentlicht, um ihn hier zu zeigen, aber werde so schnell wie möglich tun :) – Noitidart

+0

Das ist mein Code in reactjs - https://github.com/Noitidart/NativeShot/blob/master/app/ js/app_ocr.js # L67-L89 – Noitidart

+0

Das CSS, um nichts auszuwählen, ist cool, wenn sie jedoch einen Teil des auswählbaren Bereichs auswählen und dann auf eine Stelle zum Auswählen klicken, wird sie nur dann abgewählt, wenn sie in einen auswählbaren Bereich klicken. Dann bleibt es bestehen, welcher einzelne oder mehrere Knoten ausgewählt wurden. Da ich bis zu 3 verschiedene Knoten habe. Ich werde Ihnen die Implementierung zeigen, ich habe es in meinem Firefox-Addon implementiert, verwenden Sie Firefox? – Noitidart

Verwandte Themen