From 626a86682d65a68f1049af0482717bde27b58834 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Thu, 21 Apr 2016 20:11:17 -0700 Subject: Work on popup script --- ext/fg/js/popup.js | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'ext') 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,26 +20,43 @@ class Popup { constructor() { this.offset = 10; - - this.popup = document.createElement('iframe'); - this.popup.id = 'yomichan-popup'; - this.popup.addEventListener('mousedown', (e) => e.stopPropagation()); - this.popup.addEventListener('scroll', (e) => e.stopPropagation()); - - document.body.appendChild(this.popup); } - show(cont, pos) { + show(content, pos) { + inject(); + 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'; + 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'; + this.popup.addEventListener('mousedown', (e) => e.stopPropagation()); + this.popup.addEventListener('scroll', (e) => e.stopPropagation()); + + document.body.appendChild(this.popup); } - update(cont) { - this.popup.setAttribute('srcdoc', cont); + remove() { + if (this.popup !== null) { + this.popup.parentNode.removeChild(this.popup); + this.popup = null; + } } } -- cgit v1.2.3