网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月26日漏签0天
firefox吧 关注:135,197贴子:10,508,458
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 4回复贴,共1页
<<返回firefox吧
>0< 加载中...

助大大帮忙修复最新版火狐中autoPopup脚本失效的问题

  • 只看楼主
  • 收藏

  • 回复
  • kankanfirst
  • 校长之怒
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原本在之前几个版本中还能正常使用的autoPopup脚本,最近刚刚升级到最新版,没想到却失效了……求助大大帮忙修复……


  • kankanfirst
  • 校长之怒
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// ==UserScript==
// @name AutoPopup.uc.js
// @Description Auto popup menulist/menupopup
// @Compatibility Firefox 30.0+
// @Author GOLF-AT, modified by gsf & aborix
// @贴吧用户_00JG4KJ615 2019.05.05
// ==UserScript==
(function() {
const showDelay = 200;
const hideDelay = 500;
var overElt = null;
var PopElt = null;
var PopTimer = null;
var HideTimer = null;
var AlwaysPop = false;
var searchBar = null;
if (window.BrowserSearch)
searchBar = BrowserSearch.searchBar;
// Fx support all of CSS syntax: # indicates id, . represents class, or [id='demo']
var BlackIDs = [
'#back-button',
'#forward-button',
'#pocket-button',
'#sidebar-button',
'#extension_one-tab_com-browser-action',
'#popupwindow_ettoolong-browser-action',
'#_1c26aa63-9254-43b0-ba27-7c3746171ad1_-browser-action',
'#_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action',
//'#_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action',
//'#ublock0_raymondhill_net-browser-action',
'#PanelUI-menu-button',
'#undoclosetab-button',
'#super_newtranxen_com-browser-action',
//'#_acf5b849-adb0-4004-b4ff-7f5332f48567_-browser-action',
'#cpmanager_mozillaonline_com-browser-action',
//'#switchyomega_feliscatus_addons_mozilla_org-browser-action',
//'#firefox_tampermonkey_net-browser-action',
//'#xstyle-amo_addon_firefoxcn_net-browser-action',
//'#_a9c2ad37-e940-4892-8dce-cd73c6cbbc0c_-browser-action',
//'#_f5335293-04b7-4506-a920-067103625775_-browser-action',
//'#_2016d4d5-91c2-41b8-b729-6401d7a1a8c5_-browser-action',
'#headereditor-amo_addon_firefoxcn_net-browser-action',
'#pagezipper_printwhatyoulike_com-browser-action',
'#glitterdrag_harytfw-browser-action',
'#enhancerforyoutube_maximerf_addons_mozilla_org-browser-action',
//'#_e2488817-3d73-4013-850d-b66c5e42d505_-browser-action',
'#firefox-extension_sourcegraph_com-browser-action',
'wrapper-_00bf2902-f122-479e-a925-cdd0242e0ee3_-browser-action',
'#QuickTranslate',
'#QuickSnapshot',
'#textarea-cache-lite_wildsky_cc-browser-action',
'#\32 _0_disconnect_me-browser-action',
'#_0981817c-71b3-4853-a801-481c90af2e8e_-browser-action',
//'#_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action',
//'#firefox_tampermonkey_net-browser-action',
//'#ublock0_raymondhill_net-browser-action',
//'#_bee8b1f2-823a-424c-959c-f8f76c8b2306_-browser-action'
];
// whitelist, and trigger action
var whiteIDs = [
{
id: 'omnibar-defaultEngine',
popMemu: 'omnibar-engine-menu',
run: function(overElem) {
document.getElementById('omnibar-in-urlbar').click(0);
}
},
{
id: 'ucjs_zoom_statuslabel',
popMemu: 'ucjs_zoom-context',
run: null
},
{
id: 'UserScriptLoader-icon',
popMemu: 'UserScriptLoader-popup',
run: null
},
{
id: 'readLater',
popMemu: 'readLater-popup',
run: null
//function(overElem) {PopElt.popup();}
},
{
id: 'foxyproxy-toolbar-icon',
popMemu: 'foxyproxy-toolbarbutton-popup',
run: null
}
];
var whitesInx = -1;
var popupPos = ['after_start', 'end_before', 'before_start', 'start_before'];
var menuPanelID = 'appMenu-popup';
var downPanelID = 'downloadsPanel';
var widgetPanelID = 'customizationui-widget-panel';
var overflowPanel = document.getElementById('widget-overflow');
if (overflowPanel) {
overflowPanel.addEventListener('popupshowing', function() {
this.open = true;
});
overflowPanel.addEventListener('popuphiding', function() {
this.open = false;
});
}
function IsWidgetBtn(elt) {
try {
return elt.hasAttribute('widget-id') && elt.getAttribute('widget-type') == 'view';
} catch(e) {
return false;
}
}


2026-01-26 18:39:51
广告
不感兴趣
开通SVIP免广告
  • kankanfirst
  • 校长之怒
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function IsSearchBtn(elt) {
return (elt && elt.className == 'searchbar-search-button') || whitesInx == 0;
}
function IsPanelMenuBtn(elt) {
return elt && elt.id == 'PanelUI-menu-button';
}
function IsDownloadBtn(elt) {
return elt && elt.localName == 'toolbarbutton' && elt.id == 'downloads-button';
}
function IsButton(elt) {
return elt && (elt.localName == 'button' || elt.localName == 'toolbarbutton');
}
function IsMenuButton(elt) {
return IsPanelMenuBtn(elt) || IsDownloadBtn(elt) || IsWidgetBtn(elt)
|| (IsButton(elt) && getPopupMenu(elt));
}
function IsOverflowButton(elt) {
return elt && elt == document.getElementById('nav-bar-overflow-button');
}
function IsUrlbarDropmarker(elt) {
try {
return elt.getAttribute('anonid') == 'historydropmarker';
} catch(e) {
return false;
}
}
function IsAutoComplete(elt) {
try {
return elt.getAttribute('type').substr(0, 12) == 'autocomplete';
} catch(e) {
return false;
}
}
function isBlackNode(elt) {
return BlackIDs.some(function(css) {
try {
var nodes = document.querySelectorAll(css);
} catch(e) {
return false;
}
for (var node of nodes) {
if (node == elt)
return true;
}
return false;
})
}
function getPopupNode(node) {
if (whitesInx > -1 && PopElt)
return PopElt;
if (IsSearchBtn(node))
return node;
if (IsOverflowButton(node))
return node;
var elt, isPop, s;
for (; node != null; node = node.parentNode) {
if (node == PopElt)
return node;
isPop = false; // Node isn't Popup node
s = node.localName;
if (s == 'menupopup' || s == 'popup' || s == 'menulist'
|| IsAutoComplete(node) || IsMenuButton(node)) {
isPop = true;
} else if (s == 'dropmarker') {
if (node.getAttribute('type') == 'menu') {
elt = node.parentNode;
if (elt.firstChild.localName == 'menupopup')
isPop = true;
} else if (IsUrlbarDropmarker(node))
isPop = true;
} else if (s == 'menu') {
isPop = (node.parentNode.localName == 'menubar');
} else if (IsButton(node)) {
for (elt = node; (elt = elt.nextSibling) != null;) {
if (elt.localName == 'dropmarker' && elt.width > 0
&& elt.height > 0)
break;
}
if (elt)
break;
}
if (isPop)
break;
}


  • kankanfirst
  • 校长之怒
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
if (PopElt && node) {
// Whether node is child of PopElt
for (elt = node.parentNode; elt != null; elt = elt.parentNode) {
if (elt == PopElt)
return PopElt;
}
}
return isPop ? node : null;
}
function getPopupMenu(elt) {
if (whitesInx > -1 && PopElt)
return PopElt;
var nodes = elt ? elt.ownerDocument.getAnonymousNodes(elt) || elt.childNodes : null;
if (nodes) {
for (let node of nodes) {
if (node.localName == 'menupopup')
return node;
}
}
var s = elt.getAttribute('popup');
return s ? document.getElementById(s) : null;
}
function getPopupPos(elt) {
var x, y, pos, box;
for (pos = 0, x = elt.screenX, y = elt.screenY;
elt != null; elt = elt.parentNode)
{
if (elt.localName == 'window' || !elt.parentNode)
break;
else if (elt.localName != 'toolbar' && elt.localName != 'hbox'
&& elt.localName != 'vbox');
else if (elt.height >= 3 * elt.width) {
if (elt.height >= 45) {
pos = 9;
break;
}
} else if (elt.width >= 3 * elt.height) {
if (elt.width >= 45) {
pos = 8;
break;
}
}
}
try {
box = elt;
x = (pos & 1) ? (x <= box.width / 2 + box.screenX ? 1 : 3) :
(y <= box.height / 2 + box.screenY ? 0 : 2);
} catch(e) {
x = 0;
}
return popupPos[x];
}
function AutoPopup() {
PopTimer = null;
if (!overElt)
return;
if (whitesInx > -1 && PopElt && whiteIDs[whitesInx].run) {
whiteIDs[whitesInx].run(overElt);
return;
}
if (!PopElt)
PopElt = overElt;
if (overElt.localName == 'dropmarker') {
if (IsUrlbarDropmarker(overElt))
overElt.click();
else
PopElt.showPopup();
} else if (overElt.localName == 'menulist') {
overElt.open = true;
} else if (IsPanelMenuBtn(overElt)) {
PanelUI.show();
PopElt = document.getElementById(menuPanelID);
} else if (IsWidgetBtn(overElt)) {
var cmdEvent = document.createEvent('xulcommandevent');
cmdEvent.initCommandEvent('command', true, true, window, 0,
false, false, false, false, null);
overElt.dispatchEvent(cmdEvent);
PopElt = document.getElementById(widgetPanelID);
} else if (IsDownloadBtn(overElt)) {
PopElt = document.getElementById(downPanelID);
DownloadsPanel.showPanel();
} else if (IsSearchBtn(overElt)) {
searchBar.openSuggestionsPanel();
} else if (IsOverflowButton(overElt)) {
if (!overflowPanel.open) {
overElt.click();
PopElt = overflowPanel;
}
} else {
PopElt = getPopupMenu(overElt);
try {
let Pos = getPopupPos(overElt);
PopElt.removeAttribute('hidden');
PopElt.openPopup(overElt, Pos, 0, 0, false, false, null);
} catch(e) {
PopElt = null;
}
}
}


  • kankanfirst
  • 校长之怒
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function HidePopup() {
try {
if (overElt.localName == 'dropmarker') {
try {
PopElt.parentNode.closePopup();
} catch(e) { }
} else if (overElt.localName == 'menulist')
PopElt.open = false;
else if (IsDownloadBtn(overElt))
DownloadsPanel.hidePanel();
//else if (IsPanelMenuBtn(overElt) || IsWidgetBtn(overElt))
else if (PopElt && PopElt.hidePopup)
PopElt.hidePopup();
else if (PopElt.popupBoxObject)
PopElt.popupBoxObject.hidePopup();
else if (IsSearchBtn(overElt))
searchBar.textbox.closePopup();
else if (IsPanelMenuBtn(overElt))
PanelUI.hide();
} catch(e) { }
HideTimer = null;
overElt = PopElt = null;
}
function MouseOver(e) {
if (!AlwaysPop && !document.hasFocus())
return;
var popNode, n = e.originalTarget;
whitesInx = -1;
// gsf :some,forEach,filter等数组遍历方法接受第二个参数,表作用域this,可不用call了
if (n.hasAttribute('id') && whiteIDs.some(function(k,i,me) {
if (k.id == n.id) {
overElt = n;
whitesInx = i;
PopElt = document.getElementById(k.popMemu);
PopTimer = setTimeout(AutoPopup, showDelay);
return true;
}
}))
return;
popNode = getPopupNode(e.originalTarget);
if (!popNode || (popNode && popNode.disabled) || isBlackNode(popNode)) {
MouseOut();
return;
}
if (HideTimer) {
window.clearTimeout(HideTimer);
HideTimer = null;
}
try {
if (IsAutoComplete(popNode))
return;
for (var elt = popNode; elt != null; elt = elt.parentNode) {
if (elt.localName == 'menupopup' || elt.localName == 'popup')
return;
}
} catch(e) { }
if (PopElt && popNode == PopElt && PopElt != overElt)
return;
if (overElt && popNode != overElt)
HidePopup();
overElt = popNode;
PopElt = null;
PopTimer = setTimeout(AutoPopup, showDelay);
}
function MouseOut() {
if (PopTimer) {
window.clearTimeout(PopTimer);
PopTimer = null;
}
if (!HideTimer && PopElt)
HideTimer = window.setTimeout(HidePopup, hideDelay);
}
window.addEventListener('mouseover', MouseOver, false);
})();


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回firefox吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示