aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/float.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js/float.js')
-rw-r--r--ext/fg/js/float.js36
1 files changed, 35 insertions, 1 deletions
diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js
index 9301135b..65ed89a1 100644
--- a/ext/fg/js/float.js
+++ b/ext/fg/js/float.js
@@ -16,7 +16,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import {Display} from '../../mixed/js/display.js';
class DisplayFloat extends Display {
constructor() {
@@ -124,6 +123,41 @@ class DisplayFloat extends Display {
parent.appendChild(this.styleNode);
}
}
+
+ async onTermLookup(e) {
+ try {
+ e.preventDefault();
+
+ const clickedElement = $(e.target);
+ const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY});
+ textSource.setEndOffset(this.options.scanning.length);
+
+ const {definitions, length} = await apiTermsFind(textSource.text());
+ if (definitions.length === 0) {
+ return false;
+ }
+
+ textSource.setEndOffset(length);
+
+ const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);
+
+ const context = {
+ source: {
+ definitions: this.definitions,
+ index: Display.entryIndexFind(clickedElement)
+ }
+ };
+
+ if (this.context) {
+ context.sentence = sentence;
+ context.url = this.context.url;
+ }
+
+ this.termsShow(definitions, this.options, context);
+ } catch (e) {
+ this.onError(e);
+ }
+ }
}
window.yomichan_display = new DisplayFloat();