Posted by daniel on Tue 25 Oct 10:14
exports.sidebar = function(window, options){ var document = window.document, defaultSidebar = document.getElementById('sidebar-box'); if (defaultSidebar){ var sidebar = { elements: {} }, uid = new Date().getTime(), clone = defaultSidebar.cloneNode(true), splitter = document.getElementById('sidebar-splitter'), parseElements = function(el){ if (el && el.tagName){ sidebar[el.tagName] = el; if (el.id) el.id = el.id + '-' + uid; var length = el.childNodes.length; if(length) for (var i = 0; i <= length; i++) parseElements(el.childNodes[i]); } }; parseElements(clone); if(!options.header) sidebar.sidebarheader.style.display = 'none'; sidebar.browser.style.backgroundColor = '#ffffff'; document.getElementById('browser').insertBefore(clone, splitter); sidebar.options = options; sidebar.injectAssets = function(assets){ var page = sidebar.browser.contentDocument; if(page){ (assets.css || []).forEach(function(href){ var link = page.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = href + (href.split('?')[1] ? '&' : '?') + 'cacheBust=' + new Date().getTime(); page.body.appendChild(link); }); (assets.js || []).forEach(function(src){ var script = page.createElement('script'); script.type = 'text/javascript'; script.src = src + (src.split('?')[1] ? '&' : '?') + 'cacheBust=' + new Date().getTime(); page.body.appendChild(script); }); } }; sidebar.load = function(title, url){ sidebar.options.title = title ? title : sidebar.options.title || ''; sidebar.options.url = url ? url : sidebar.options.url || 'about:blank'; sidebar.browser.setAttribute('src', sidebar.options.url); sidebar.vbox.setAttribute('src', sidebar.options.url); sidebar.label.value = sidebar.options.title; return sidebar; }; sidebar.show = function(){ splitter.hidden = false; sidebar.vbox.hidden = false; var content = sidebar.browser.contentWindow; if(!content || content.location != sidebar.options.url) sidebar.load(); sidebar.label.value = sidebar.options.title; return sidebar; }; sidebar.hide = function(document){ sidebar.vbox.hidden = true; splitter.hidden = true; return sidebar; }; sidebar.close = function(document){ sidebar.hide(); sidebar.label.value = ''; sidebar.browser.setAttribute('src', 'about:blank'); sidebar.vbox.setAttribute('src', 'about:blank'); return sidebar; }; sidebar.destroy = function(){ document.getElementById('browser').removeChild(sidebar.vbox); }; sidebar.domready = function(){ (sidebar.options.onDomReady || function(){}).call(sidebar, this); } sidebar.browser.addEventListener('DOMContentLoaded', sidebar.domready, false); sidebar.toolbarbutton.addEventListener('click', sidebar[sidebar.options.closeButtonAction || 'close'], false); sidebar.show(); sidebar.hide(); } return sidebar || false; };
Submit a correction or amendment below (make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.