From 626a86682d65a68f1049af0482717bde27b58834 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Thu, 21 Apr 2016 20:11:17 -0700 Subject: [PATCH] Work on popup script --- ext/fg/js/popup.js | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index e48703bf..3c3d0510 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -20,6 +20,30 @@ class Popup { constructor() { this.offset = 10; + } + + show(content, pos) { + inject(); + + this.popup.style.left = pos.x + 'px'; + this.popup.style.top = pos.y + 'px'; + this.popup.style.visibility = 'visible'; + } + + hide() { + remove(); + } + + update(content) { + if (this.popup !== null) { + this.popup.setAttribute('srcdoc', content); + } + } + + inject() { + if (this.popup !== null) { + return; + } this.popup = document.createElement('iframe'); this.popup.id = 'yomichan-popup'; @@ -29,17 +53,10 @@ class Popup { document.body.appendChild(this.popup); } - show(cont, pos) { - this.popup.style.left = pos.x + 'px'; - this.popup.style.top = pos.y + 'px'; - this.popup.style.visibility = 'visible'; - } - - hide() { - this.popup.style.visibility = 'hidden'; - } - - update(cont) { - this.popup.setAttribute('srcdoc', cont); + remove() { + if (this.popup !== null) { + this.popup.parentNode.removeChild(this.popup); + this.popup = null; + } } }