diff options
| -rw-r--r-- | ext/fg/float.html | 2 | ||||
| -rw-r--r-- | ext/fg/js/float.js | 35 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 1 | 
3 files changed, 38 insertions, 0 deletions
| diff --git a/ext/fg/float.html b/ext/fg/float.html index fed7eeab..07f2d58b 100644 --- a/ext/fg/float.html +++ b/ext/fg/float.html @@ -36,6 +36,8 @@          <script src="/fg/js/api.js"></script>          <script src="/fg/js/util.js"></script> +        <script src="/fg/js/document.js"></script> +        <script src="/fg/js/source.js"></script>          <script src="/mixed/js/display.js"></script>          <script src="/fg/js/float.js"></script> diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 1deb61a9..65ed89a1 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -123,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(); diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 43eb93c1..364d67d8 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -265,6 +265,7 @@ class Display {              $('.action-view-note').click(this.onNoteView.bind(this));              $('.action-play-audio').click(this.onAudioPlay.bind(this));              $('.kanji-link').click(this.onKanjiLookup.bind(this)); +            $('.glossary li').click(this.onTermLookup.bind(this));              await this.adderButtonUpdate(['term-kanji', 'term-kana'], sequence);          } catch (e) { |