diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/fg/js/popup.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index 2b2bf5d3..7da75446 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -26,10 +26,19 @@ class Popup { this.container.setAttribute('src', chrome.extension.getURL('/fg/frame.html')); this.container.style.width='0px'; this.container.style.height='0px'; - document.body.appendChild(this.container); + this.injected = false; + } + + inject() { + if (!this.injected) { + document.body.appendChild(this.container); + this.injected = true; + } } showAt(rect) { + this.inject(); + this.container.style.left = `${rect.x}px`; this.container.style.top = `${rect.y}px`; this.container.style.height = `${rect.height}px`; @@ -38,6 +47,8 @@ class Popup { } showNextTo(elementRect, options) { + this.inject(); + const containerStyle = window.getComputedStyle(this.container); const containerHeight = parseInt(containerStyle.height); const containerWidth = parseInt(containerStyle.width); @@ -83,7 +94,7 @@ class Popup { } isVisible() { - return this.container.style.visibility !== 'hidden'; + return this.injected && this.container.style.visibility !== 'hidden'; } showTermDefs(definitions, options, context) { |