阅读:5108回复:6
[求助]帮忙修改sidebar这个uc脚本
我在用Sidebar.uc.js 这个uc脚本,
Sidebar.uc.rar 展示效果如下 图片:QQ截图20150105155903.png ![]() 我想在红色地方添加下载选项的按钮,就是展示下面的页面 图片:QQ图片20150105160145.png ![]() 我用DOM Inspector和Element Inspector 获取的id如下 图片:QQ图片20150105155210.png ![]() 但是打开chrome://browser/content/places/places.xul 却显示的是书签 // ==UserScript== // @name Sidebar.uc.js // @description 侧边栏功能增强 // @include chrome://browser/content/browser.xul // @charset UTF-8 // ==/UserScript== (function() { if (!document.getElementById('sidebar-box')) return; if (!window.SidebarMod) { window.SidebarMod = { sitelist:[{ name: '历史', url: 'chrome://browser/content/history/history-panel.xul', favicon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH7SURBVDhPhVI9a9tQFBUeO4YOwZTSH+Ch1I2esIdi10jvPYsMmTLkH5Sm9lI8FIsOHUsU+gOMKSGEBNwiB5K9xJbdQJYQYtWIYEonL82HBhNe7316LnbT2AcOsu5759xzr6zdB+FoibPlTPL6OJMUQkuo8nwEtvGsx/TtgOuXASci6hripkMuoy7ZufaXnqtr/0eP69UeI7coDBjpH7JseLKXDW+6RhgbGbdg9F5dj3FeNAryyck7KeR6GHCDYs2y6JZpss/4O+rq5oRRFWsS0PEXRD4G4QjFOLc6mjJAXPlLi2iCSa78zFNZhK6tuDMRMELwo0hWcYF49q8BIvINiimAcR2EW2MDxcO+nX5sWdYT06TnlsXOKKWP5GWFeBQylC89Tj6gEEa5gD2syCIAujdALJCQ4hRYi8lp1CENTPH7e/ohGqyhyU87/UBpJUC4O2mA4yAhDc81aSPfhPqBuaCu3wXGHu+Ac76oyhJ5j4U5j8UjIF59+pYsua2N8uaR/Hyz8HKf2dg936R1VdK0dbeTeuO2R6WN1uD1ZntqYZMofCkkofsAOHrhFVOqHKPktt8CBZqsu77tOOLv/99xnETOo1yKoTvsoKKOpgFjVGQSZQT0QPAVBBcyNnS+VzwGjgNGdTAaopHsCAsD1u7Enofyx6OFmZ9K07Q/7iAmIuxhVMIAAAAASUVORK5CYII=' },{ name: '附加组件', url: 'about:addons', favicon: "chrome://mozapps/skin/extensions/extensionGeneric-16.png#-moz-resolution=16,16" },{ name: '侧栏翻译', url: 'http://translate.google.com/#auto/zh-CN/', favicon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAElSURBVDhPrZE/awJBEEevEOz9JPkS6dIHLCzSpQtYBQIhpYF0dmJnkyKkE1FSaCMcxCNBwcI/ICYhiF20sBl5w82y4U4NwYUHe8f+3szsBkdZ65+FGM3ms1SqZVkupsr351C+PgYSH01fBK5vikrhIq/YN8xn/b8J/KAvOiig9W7Y1kDUDzVweVeSq1Ac5x2Rs9ZKTuoiuceN4kazea0iHbE/JIBfAi7QWmfvh19GcwVJqmAy7iVmJwj3r0v3GuwTAubOFEd6D1TmG6gGVDYB+4SAsKE/4sW8CAg+hZFWZ++PoQf3CQjxKreNyMn8LvTgLgEH7Fm5I0DAv50CHyoSov3T2rsG6MTuxwmwpgkAgYUNLhucgJUmyT68KX7Yh0wc/+8Kgi1VwxKf8jOsdgAAAABJRU5ErkJggg==' },{ name: 'webQQ', url: 'http://w.qq.com/', favicon: 'data:image/ico;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAy9JREFUOI1lk11MW3Uchv8zphfGC2N6sQS8UBPBTTDjZptjy8imXWALm4S5uGgkRqIhsFBc6jTRxa9khCbMXgyMGYRtTmEIgzWdU2yQmc7RbVjb1fUDp20ZWHpODz09peWcPl4s8QOe5Hf3Pr+r9xViFUyLMvwP2gvBaq8WPq6fvXZUf+FSg3e7c6+98uK2stX5/8vBEivhLZr65wDzcxKzcZm6y6+yYXQbze5mOq91arucB6xrxUFh4vdaF7G30OLnmE9qSLKKlEpx3neGfVcOseniDo5MtjEednLI/bpr4+BG078PIpu7SfWi37WS+ivBkrpMIZ+HYhEKeWaTv/LJdCcvfnuQd386xuQfV3netd9+X/aJCpQvdeItaLF+MqoOhoEBjHrjdAz9wtjNe1Ao4Lk7RcePR+jydnEm+JW+aXD7BkGkqpv0WYg0oCanMQADaBryYfrIhfjAyQPHxrjiXwAgGPdjm+qgd6YHi6vRLoi3/sZcB0akHk2ZA+DCzALihBvRNYk4eRXx6QQtwz4AinnwRKewTVk5/H1TQBBryxOpwYjsJZ9V0A04OBZCOH5GnPIierwIx3We67vJRCiFvqKTkVVO3fiMPa4DaUF0X55gKUaoBnILeOMaD3/uY12fH9HnR5z2s64/wEM9M7R7JCiuoKU13OEJdoxbMgL/I2H8AkI1FJaiGMDIbQnRdwdxbvb+9YdpGfZhAAXDIKPkuBG9TvWlPQGRCdc5CuGnyUZsyLIEFBm5LbF7LE67R6LdI2EZT9DukZgIpUjFIiiSyg933FSN7OwWajRakRjo1WPqMikli6qqYKxgrOigFwHQgcJ8BKW3k3TtTlTbO5yYPqmXj26tEEIIIT3+pGP+wmnuyUmS2jJKXicH5AB1cY6l74ZIH96PtP4xpEfXk6vayjdvWrr/aWJACFOqtNQltzax+HUPSed5Foe/QHK8j9zaQHrXs8jVz6C8shulbjPpykpXoLHRJFaTNJdYpS3lWuYNC1nbS2SPv4bW1Uau/0OWBz4m09ygJUtK1o7pvyTM5jK5vNyefrn+Vva9t1GPtiDX196Sn3jKnjCb18z5b3Nxitlmajr/AAAAAElFTkSuQmCC' }], makeButton: function (sitelist) { var i, len = sitelist.length, item, btn, frag = document.createDocumentFragment(); insertpoint = document.querySelector('#sidebar-header .close-icon'); for (i = 0; i < len; i++) { item = sitelist<span style="font-style: italic;">; btn = frag.appendChild(document.createElement('toolbarbutton')); btn.setAttribute('tooltiptext', item.name); btn.setAttribute('style', 'list-style-image: url("' + item.favicon + '")'); btn.setAttribute('url', item.url); btn.setAttribute('onclick', 'openWebPanel(this.getAttribute("tooltiptext"), this.getAttribute("url"))'); } insertpoint.parentNode.insertBefore(frag, insertpoint); }, //添加侧栏前进、后退、刷新按钮 addControlBtn: function(){ var SHBtn = document.getElementById("sidebar-header"); if(SHBtn) { var _sidebarBtn = document.createElement('toolbarbutton'); _sidebarBtn.setAttribute('type', 'button'); _sidebarBtn.setAttribute("tooltiptext","左键:后退\n中键:刷新\n右键:前进"); _sidebarBtn.setAttribute("class", "toolbarbutton-1 chromeclass-toolbar-additional"); _sidebarBtn.setAttribute("image","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABaSURBVDhPzYzJEcAwCAPpJ62kaHfmHCMzJEbi4Y/3BSuNbE/OdnScTuZSniIbKEdGSQ1k2UtZuKEdFijnfhIgepWtD6QCKPf3PAiUHVVQ2YdqAK+GDeDcCrMLOe2fMX6PACcAAAAASUVORK5CYII="); _sidebarBtn.addEventListener("click", function(event) { var webPanel = document.getElementById('sidebar').contentDocument.getElementById("web-panels-browser"); if (event.button == 2) { event.preventDefault(); event.stopPropagation(); webPanel.contentWindow.history.forward(); } else if (event.button == 1){ webPanel.contentWindow.location.reload(); } else { webPanel.contentWindow.history.back(); } }, false); SHBtn.insertBefore(_sidebarBtn, SHBtn.childNodes[2]); } }, toggleSidebar: function (commandID, forceOpen) { var sidebarBox = document.getElementById("sidebar-box"), sidebar = document.getElementById("sidebar"), sidebarTitle = document.getElementById("sidebar-title"), sidebarBoxArrow = document.getElementById('sidebar-box-arrow'), lastcommand = commandID || sidebarBox.getAttribute('sidebarcommand') || sidebarBox.getAttribute('sidebarlastcommand') || 'viewHistorySidebar'; if (!commandID && sidebarBox.hidden) { if (sidebarBox.getAttribute('sidebarcommand') === '') { toggleSidebar(lastcommand, true); sidebarBox.setAttribute('sidebarlastcommand', lastcommand); } else { sidebarBox.hidden = false; if (sidebarBoxArrow) sidebarBoxArrow.className = ''; } return; } if (!commandID) commandID = sidebarBox.getAttribute("sidebarcommand"); let sidebarBroadcaster = document.getElementById(commandID); if (sidebarBroadcaster.getAttribute("checked") == "true") { if (!forceOpen) { if (sidebarBox.getAttribute('sidebarcommand') !== 'viewWebPanelsSidebar') { sidebar.setAttribute("src", "about:blank"); sidebar.docShell.createAboutBlankContentViewer(null); sidebarBox.setAttribute("sidebarcommand", ""); sidebarTitle.value = ""; sidebarBox.setAttribute('sidebarlastcommand', lastcommand); } sidebarBox.setAttribute("sidebarcommand", ""); sidebarBox.setAttribute('sidebarlastcommand', lastcommand); sidebarBroadcaster.removeAttribute("checked"); sidebarBox.hidden = true; if (sidebarBoxArrow) sidebarBoxArrow.className = 'right'; gBrowser.selectedBrowser.focus(); } else { fireSidebarFocusedEvent(); } return; } var broadcasters = document.getElementsByAttribute("group", "sidebar"); for (let broadcaster of broadcasters) { if (broadcaster.localName != "broadcaster") continue; if (broadcaster != sidebarBroadcaster) broadcaster.removeAttribute("checked"); else sidebarBroadcaster.setAttribute("checked", "true"); } sidebarBox.hidden = false; if (sidebarBoxArrow)sidebarBoxArrow.className = ''; var url = sidebarBroadcaster.getAttribute("sidebarurl"); var title = sidebarBroadcaster.getAttribute("sidebartitle"); if (!title) title = sidebarBroadcaster.getAttribute("label"); sidebar.setAttribute("src", url); sidebarBox.setAttribute("sidebarcommand", sidebarBroadcaster.id); if ( title && title !== '') sidebarTitle.value = title; sidebarBox.setAttribute("src", url); sidebarBox.setAttribute('sidebarlastcommand', lastcommand); if (sidebar.contentDocument.location.href != url) sidebar.addEventListener("load", sidebarOnLoad, true); else fireSidebarFocusedEvent(); }, modifySidebarClickBehaviour: function () { var sidebar = document.getElementById('sidebar'); sidebar.addEventListener('DOMContentLoaded', function(){ if (sidebar.contentDocument){ sidebar.removeEventListener('DOMContentLoaded', arguments.callee, false); var wpb = sidebar.contentDocument.getElementById('web-panels-browser'); if (wpb) { wpb.onclick = null; } } }, false); eval("window.asyncOpenWebPanel = " + window.asyncOpenWebPanel.toString().slice(0, -1) + 'var wpb = sidebar.contentDocument.getElementById("web-panels-browser");' + 'if (wpb) wpb.onclick = null;' + '}' ); eval("window.openWebPanel = " + window.openWebPanel.toString().slice(0, -1) + 'var wpb = sidebar.contentDocument.getElementById("web-panels-browser");' + 'if (wpb) wpb.onclick = null;' + '}' ); }, init: function() { window.toggleSidebar = this.toggleSidebar; this.makeButton(this.sitelist); this.addControlBtn(); this.modifySidebarClickBehaviour(); } }; SidebarMod.init(); } })();</span>问题1,应该怎么修改这个uc脚本呢,添加下载选项 问题2,我同时在用Omnisiderbar这个扩展,点击附加组件和点击siderbar.uc.js这个脚本的附加组件图标展示结果不一致,但我看地址都是 about:addons 怎么才能点击右边附加组件图标变成左边的效果 图片:3.png ![]() |
|
|
1楼#
发布于:2015-01-05 16:50
chrome://mozapps/content/downloads/downloads.xul
chrome://mozapps/content/extensions/extensions.xul |
|
2楼#
发布于:2015-01-06 09:41
|
|
|
3楼#
发布于:2015-01-06 13:42
|
|
4楼#
发布于:2015-01-06 15:01
{ name: '下载', url: 'about:downloads', favicon: "chrome://browser/skin/places/downloads.png" }, |
|
5楼#
发布于:2015-01-07 09:52
|
|
|
6楼#
发布于:2017-11-21 11:00
现在好你不起作用了
|
|