From 214f0d89b46769b1df15829dc404a15e4f1d3e00 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Wed, 25 Oct 2017 00:36:36 +0530 Subject: [PATCH] Fix call to clearCOnsole in case of detached window. fixes #222 --- src/lib/screenlog.js | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/lib/screenlog.js b/src/lib/screenlog.js index a6dd519..074162b 100644 --- a/src/lib/screenlog.js +++ b/src/lib/screenlog.js @@ -1,3 +1,6 @@ +var mainWindow = window.parent.onMessageFromConsole + ? window.parent + : window.parent.opener; (function() { var logEl, isInitialized = false, @@ -37,18 +40,27 @@ if (_options.proxyCallback) { _options.proxyCallback.apply(null, arguments); } - if (_options.noUi) { return; } - var el = createElement('div', 'line-height:18px;min-height:18px;background:' + - (logEl.children.length % 2 ? 'rgba(255,255,255,0.1)' : '') + ';color:' + color); // zebra lines + if (_options.noUi) { + return; + } + var el = createElement( + 'div', + 'line-height:18px;min-height:18px;background:' + + (logEl.children.length % 2 ? 'rgba(255,255,255,0.1)' : '') + + ';color:' + + color + ); // zebra lines var val = [].slice.call(arguments).reduce(function(prev, arg) { - return prev + ' ' + (typeof arg === "object" ? JSON.stringify(arg) : arg); + return ( + prev + ' ' + (typeof arg === 'object' ? JSON.stringify(arg) : arg) + ); }, ''); el.textContent = val; logEl.appendChild(el); // Scroll to last element, if autoScroll option is set. - if(_options.autoScroll) { + if (_options.autoScroll) { logEl.scrollTop = logEl.scrollHeight - logEl.clientHeight; } }; @@ -56,7 +68,7 @@ function clear() { if (_options.noUi) { - window.parent.clearConsole(); + mainWindow.clearConsole(); return; } logEl.innerHTML = ''; @@ -79,18 +91,20 @@ } function setOptions(options) { - for(var i in options) - if(options.hasOwnProperty(i) && _options.hasOwnProperty(i)) { + for (var i in options) + if (options.hasOwnProperty(i) && _options.hasOwnProperty(i)) { _options[i] = options[i]; } } function init(options) { - if (isInitialized) { return; } + if (isInitialized) { + return; + } isInitialized = true; - if(options) { + if (options) { setOptions(options); } @@ -175,19 +189,18 @@ destroy: checkInitDecorator(destroy) }; })(); -var mainWindow = window.parent.onMessageFromConsole ? window.parent : window.parent.opener; screenLog.init({ noUi: true, - proxyCallback: function () { + proxyCallback: function() { mainWindow.onMessageFromConsole.apply(null, arguments); } }); window._wmEvaluate = function _wmEvaluate(expr) { try { var result = eval(expr); - } catch(e) { + } catch (e) { mainWindow.onMessageFromConsole.call(null, e); return; } mainWindow.onMessageFromConsole.call(null, result); -} \ No newline at end of file +};