diff options
Diffstat (limited to 'ext/fg')
| -rw-r--r-- | ext/fg/frame.html | 31 | ||||
| -rw-r--r-- | ext/fg/js/display-frame.js | 12 | ||||
| -rw-r--r-- | ext/fg/js/driver.js | 31 | 
3 files changed, 51 insertions, 23 deletions
| diff --git a/ext/fg/frame.html b/ext/fg/frame.html index ec0acf64..35bc0284 100644 --- a/ext/fg/frame.html +++ b/ext/fg/frame.html @@ -6,28 +6,35 @@          <link rel="stylesheet" href="/mixed/lib/bootstrap-3.3.7-dist/css/bootstrap.min.css">          <link rel="stylesheet" href="/mixed/lib/bootstrap-3.3.7-dist/css/bootstrap-theme.min.css">          <link rel="stylesheet" href="/mixed/css/frame.css"> +        <style type="text/css"> +            .entry { +                padding-left: 10px; +                padding-right: 10px; +            } +        </style>      </head>      <body> -        <div class="container-fluid"> -            <div id="spinner"> -                <img src="/mixed/img/spinner.gif"> -            </div> +        <div id="spinner"> +            <img src="/mixed/img/spinner.gif"> +        </div> -            <div id="content"></div> +        <div id="content"></div> -            <div id="orphan"> +        <div id="orphan"> +            <div class="container-fluid">                  <h1>Yomichan Updated!</h1>                  <p>                      The Yomichan extension has been updated to a new version! In order to continue                      viewing definitions on this page you must reload this tab or restart your browser.                  </p>              </div> - -            <script src="/mixed/lib/jquery-3.1.1.min.js"></script> -            <script src="/mixed/lib/wanakana.min.js"></script> -            <script src="/fg/js/util.js"></script> -            <script src="/mixed/js/display.js"></script> -            <script src="/fg/js/display-frame.js"></script>          </div> + +        <script src="/mixed/lib/jquery-3.1.1.min.js"></script> +        <script src="/mixed/lib/wanakana.min.js"></script> +        <script src="/fg/js/util.js"></script> +        <script src="/mixed/js/util.js"></script> +        <script src="/mixed/js/display.js"></script> +        <script src="/fg/js/display-frame.js"></script>      </body>  </html> diff --git a/ext/fg/js/display-frame.js b/ext/fg/js/display-frame.js index 8f15b1bc..41c2fb53 100644 --- a/ext/fg/js/display-frame.js +++ b/ext/fg/js/display-frame.js @@ -47,6 +47,10 @@ window.displayFrame = new class extends Display {          }      } +    clearSearch() { +        window.parent.postMessage('popupClose', '*'); +    } +      showOrphaned() {          $('#content').hide();          $('#orphan').show(); @@ -54,20 +58,20 @@ window.displayFrame = new class extends Display {      onMessage(e) {          const handlers = new class { -            api_showTermDefs({definitions, options, context}) { +            showTermDefs({definitions, options, context}) {                  this.showTermDefs(definitions, options, context);              } -            api_showKanjiDefs({definitions, options, context}) { +            showKanjiDefs({definitions, options, context}) {                  this.showKanjiDefs(definitions, options, context);              } -            api_showOrphaned() { +            showOrphaned() {                  this.showOrphaned();              }          }; -        const {action, params} = e.originalEvent.data, method = handlers[`api_${action}`]; +        const {action, params} = e.originalEvent.data, method = handlers[action];          if (typeof(method) === 'function') {              method.call(this, params);          } diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js index fbe89ab8..036dc2d8 100644 --- a/ext/fg/js/driver.js +++ b/ext/fg/js/driver.js @@ -35,6 +35,7 @@ window.driver = new class {              window.addEventListener('mouseup', this.onMouseUp.bind(this));              window.addEventListener('mousemove', this.onMouseMove.bind(this));              window.addEventListener('resize', e => this.searchClear()); +            window.addEventListener('message', this.onFrameMessage.bind(this));              chrome.runtime.onMessage.addListener(this.onBgMessage.bind(this));          }).catch(this.handleError.bind(this));      } @@ -45,14 +46,14 @@ window.driver = new class {      }      popupTimerClear() { -        if (this.popupTimer !== null) { +        if (this.popupTimer) {              window.clearTimeout(this.popupTimer);              this.popupTimer = null;          }      }      onMouseOver(e) { -        if (e.target === this.popup.container && this.popuptimer !== null) { +        if (e.target === this.popup.container && this.popupTimer) {              this.popupTimerClear();          }      } @@ -101,14 +102,30 @@ window.driver = new class {          }      } +    onFrameMessage(e) { +        const handlers = { +            popupClose: () => { +                this.searchClear(); +            } +        }; + +        const handler = handlers[e.data]; +        if (handler) { +            handler(); +        } +    } +      onBgMessage({action, params}, sender, callback) {          const handlers = new class { -            api_optionsSet(options) { +            optionsSet(options) {                  this.options = options; +                if (!this.options.enable) { +                    this.searchClear(); +                }              }          }; -        const method = handlers[`api_${action}`]; +        const method = handlers[action];          if (typeof(method) === 'function') {              method.call(this, params);          } @@ -122,11 +139,11 @@ window.driver = new class {          }          const textSource = docRangeFromPoint(point, this.options.scanning.imposter); -        if (textSource === null || !textSource.containsPoint(point)) { +        if (!textSource || !textSource.containsPoint(point)) {              return;          } -        if (this.lastTextSource !== null && this.lastTextSource.equals(textSource)) { +        if (this.lastTextSource && this.lastTextSource.equals(textSource)) {              return;          } @@ -200,7 +217,7 @@ window.driver = new class {          docImposterDestroy();          this.popup.hide(); -        if (this.options.scanning.selectText && this.lastTextSource !== null) { +        if (this.options.scanning.selectText && this.lastTextSource) {              this.lastTextSource.deselect();          } |