lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
15楼#
发布于:2021-08-14 19:32
试试将 this.RebuildPopup(true); 替换成
setTimeout(() => { this.RebuildPopup(true); }, 100);

另外你有没有下载这个
https://github.com/xiaoxiaoflood/firefox-scripts/raw/master/utils.zip
或者这个
https://github.com/xiaoxiaoflood/firefox-scripts/raw/master/utils_scripts_only.zip
并解压放到配置文件夹的 chrome 目录里?

具体用不了是指图标显示不出来,菜单菜单栏中添加的菜单也没有吗?
将启动浏览器后,立即打开浏览器控制台 (ctrl+shift+j)
需先将你提供的 _anoBtn.js 中 317 行的 clone: false 改为 clone: true,
不然快捷键打不开,将该脚本相关的日志复制出来看看。
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
16楼#
发布于:2021-08-14 20:30
lonely_8:试试将 this.RebuildPopup(true); 替换成
setTimeout(() => { this.RebuildPopup(true); }, 100);

另外你有没有下载这个
https://github.com...
回到原帖
感谢解答。
运行UC脚本所需的基本JS文件,都下载了,我是在能使用styloaix的情况下,才测试AnotherButton.uc为无效的。当时是有按钮的,但是点击后没反应。
现在按照你的方法修改,可以正常使用了,感谢!

另外clone: false并不需要改true,如果改了true,开发工具弹出的菜单是另外的菜单。
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
17楼#
发布于:2021-08-14 20:34
AnotherButton能使用之后,发现DownloadPlus.uc使用不了了,还是用回之前的config吧,styloaix用不了就算了。
etjim
火狐狸
火狐狸
  • UID30046
  • 注册日期2009-08-12
  • 最后登录2024-04-25
  • 发帖数161
  • 经验224枚
  • 威望0点
  • 贡献值56点
  • 好评度13点
  • 忠实会员
  • 社区居民
18楼#
发布于:2021-08-14 20:45
kidzgy:AnotherButton能使用之后,发现DownloadPlus.uc使用不了了,还是用回之前的config吧,styloaix用不了就算了。回到原帖
如果你想实时反应浏览器界面css的修改效果,可以用浏览器内置的浏览器工具箱(ctrl+shift+alt+i)
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
19楼#
发布于:2021-08-14 21:39
kidzgy:AnotherButton能使用之后,发现DownloadPlus.uc使用不了了,还是用回之前的config吧,styloaix用不了就算了。回到原帖
感觉是加载时机的问题。试试将 utils\userChrome.jsm 中
的第 195 行的 【if (xPref.get(_uc.PREF_ENABLED)) {】(不含【】,下同)
前面加上【 window.setTimeout(() => {】
201 行后面加上 【}, 0);】如果还不行,将这里的 0 ,适当地往上增加。


改后删除配置目录下的 startupCache 文件夹。


另外 styloaix.uc.js 无法右键编辑需要将
document.popupNode._style
替换成
event.target.parentNode.triggerNode._style
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
20楼#
发布于:2021-08-14 21:54
lonely_8:感觉是加载时机的问题。试试将 utils\userChrome.jsm 中
的第 195 行的 【if (xPref.get(_uc.PREF_ENABLED)) {】(不含【】,下同)
前面加上【 window.setTimeout(...
回到原帖
照你所说修改后,所有脚本都用不了了
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
21楼#
发布于:2021-08-14 22:43
lonely_8:感觉是加载时机的问题。试试将 utils\userChrome.jsm 中
的第 195 行的 【if (xPref.get(_uc.PREF_ENABLED)) {】(不含【】,下同)
前面加上【 window.setTimeout(...
回到原帖
链接:https://pan.baidu.com/s/1d_z4nkUuL5sFXCbUGrA9Og
提取码:aaaa
这个是我完整的UC脚本
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
22楼#
发布于:2021-08-14 23:01
kidzgy:照你所说修改后,所有脚本都用不了了回到原帖
这是改好了的 https://paste.ubuntu.com/p/Xw7ksQBRHX/
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
23楼#
发布于:2021-08-14 23:09
lonely_8:这是改好了的 https://paste.ubuntu.com/p/Xw7ksQBRHX/回到原帖
我对比了下修改的内容,就是你说的那写。难道我改的地方改错了?
不过重新试了下,确实又能用了。感谢!
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
24楼#
发布于:2021-08-15 11:10
lonely_8:这是改好了的 https://paste.ubuntu.com/p/Xw7ksQBRHX/回到原帖
又有新问题了,在xiaoxiaoflood的config的基础上,滚轮切换搜索栏搜索引擎.uc.js用不了了。
// ==UserScript==
// @name           滚轮切换搜索栏搜索引擎.uc.js
// @namespace      https://github.com/Endor8/userChrome.js/blob/master/Firefox-57/SearchEngineWheelScroll.uc.js
// @description    wheelscroll to change search engine
// @include        main
// @compatibility  Firefox 57
// @author         Endor8
// @version        2018/04/16 19:00 v1
// ==/UserScript==
 
(function() {
//Einstellungen - true = ein(aktiviert) false = aus(deaktiviert)
    
//Namen und Symbol der Suchmaschine in der Suchleiste anzeigen
  const BUTTON_ONLY = false //Nur bei Suchleisten Suchschaltfläche anwenden - Suchmaschinen wechseln mit Scrollrad im Hauptkontextmenü deaktivieren
  const label = true; //Namen anzeigen
  const img = true; //Symbol - Favicon anzeigen
//Doppelklick auf Suchleiste, um zur Standard Suchmaschine zurück zu kehren
  const only = false; //Suchleiste leeren und nicht zur Standardsuchmaschine zurückkehren [Neu in Version 0.6]
  const dbl = true; //Funktion aktivieren
  const zero = false; //Bei Klick zur obersten Suchmaschine zurückkehren
  const select = ' 百度 '; //Standard Suchmaschine angeben, zum Beispiel 'DuckDuckGo'.
  const erase = true; //Nach Suche Suchleiste leeren
//[Aktion nach dem Suchen mit der Suchleiste]
  const auto = true; //Andere Einstellungen verwenden, durch einen Doppelklick auf die Suchleiste 
//Kontextmenü Suche wechseln mit[~~Suchen]
  const cxt = true; //Funktion aktivieren
  const icon = true; //Symbol - Favicon anzeigen
  const clk = true; //Klicken, um zur Standard Suchmaschine zurückzukehren (Andere Einstellungen verwenden ~ mit Doppelklick auf die Suchleiste)
  const sync = false; //Suchwort an die Suchleiste senden [Neu in Version 0.7]
  const hist = true; //Suchwort der Suchchronik der Suchleiste hinzufügen * Es ist OK, wenn die Synchronisation inkorrekt ist [Neu in Version 0.8]
//[Verhalten beim Start] * Gilt auch beim Neustart
  const start0 = false; //Andere Einstellungen verwenden, durch Doppelklick auf die Suchleiste
    
//Konfiguration
    
  const scrollRight = true;
  let bar = document.getElementById('searchbar');
  let box = bar.textbox.inputField;
  let menu = document.getElementById('context-searchselect');
  let BSS = Services.search;
      
  if(!!dbl) bar.addEventListener('dblclick', ResetE, false);
  bar.addEventListener('DOMMouseScroll', ChangeE, false);
  if(!!cxt) menu.addEventListener('wheel', ChangeE, false);
  if(!!clk) menu.addEventListener('click', function(){
    if(!!sync) {box.value = this.searchTerms}else{box.value = box.value}
    if(!!hist) SyncHistory();
    setTimeout(function(){ResetE()}, 0)
  }, false);
    
  window.addEventListener('unload', function uninit() {
        bar.removeEventListener('dblclick', ResetE, false);
        bar.removeEventListener('DOMMouseScroll', ChangeE, false);
        menu.removeEventListener('wheel', function(e){if(!!con) ChangeE(e)} , false);
        menu.removeEventListener('click', function(){
            if(!!sync) {box.value = this.searchTerms}else{box.value = box.value}
            if(!!hist) SyncHistory();
            setTimeout(function(){ResetE()}, 0)
        } , false);
        window.removeEventListener('unload', uninit , false);
  }, false);
      
  async function ResetE(){
    this.engines = await BSS.getVisibleEngines();
    if(!only){
    if(!!zero || select == ''){BSS.defaultEngine = this.engines[0]
    }else{
        BSS.defaultEngine = BSS.getEngineByName(select)
        }
    }
    if(!!erase || !!only) box.value = '';
  }
      
  function CMenu() {
    let selectedText = menu.searchTerms || window.getSelection().toString();
    if (selectedText.length > 15) {
        let truncLength = 15;
        let truncChar = selectedText[15].charCodeAt(0);
        if (truncChar >= 0xDC00 && truncChar <= 0xDFFF)
            truncLength++;
        selectedText = selectedText.substr(0, truncLength) + '\u2026';
    }
    var menuLabel = gNavigatorBundle.getFormattedString('contextMenuSearch',[BSS.defaultEngine.name, selectedText]);
    menu.setAttribute('label', menuLabel);
    if(!icon || !cxt) return;
    let style = '@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);#context-searchselect:before{margin:0 -20px 0 5px;content:"";display:inline-block;width:16px;height:16px;background:url('+ BSS.defaultEngine.iconURI.spec +');background-size:contain!important}';
    let sspi = document.createProcessingInstruction(
        'xml-stylesheet',
        'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
    document.insertBefore(sspi, document.documentElement);
    sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
    }; 
  }
      
  function SyncHistory(){
    let val = menu.searchTerms;
    let addHistory = function(val){
        setTimeout(function(){bar.FormHistory.update({op: "add", fieldname: "searchbar-history", value: val})}, 500);
    };
    let removeHistory = function(callback, val){
        bar.FormHistory.update({op: "remove", fieldname: "searchbar-history", value: val});
        callback(val);
    }
    removeHistory(addHistory, val);
  }
      
  async function ChangeE(event) {
    if(BUTTON_ONLY && event.originalTarget.className !== 'searchbar-search-button' && event.originalTarget !== menu) return;
    let dir = (scrollRight ? 1 : -1) * Math.sign(event.detail || event.deltaY);
    this.engines = await BSS.getVisibleEngines();
    let index = this.engines.findIndex(e => e.name === BSS.defaultEngine.name);
        this.engines[this.engines.length] = this.engines[0]
        if(index+dir < 0 || index+dir === this.engines.length - 1) return;
        BSS.defaultEngine = this.engines[index+dir];
  }
      
  function ShowCurrentE(){
    let E = BSS.defaultEngine;
        if(!!label)box.setAttribute('placeholder', E.name);
    let icon = bar.querySelector('.searchbar-search-icon');
        if(!!img)icon.setAttribute('style', "list-style-image: url('"+ E.iconURI.spec +"') !important; -moz-image-region: auto !important; width: 16px !important; padding: 2px 0 !important;");
  }
      
  Services.obs.addObserver(observe, "browser-search-engine-modified");
    window.addEventListener("unload", () => {
      Services.obs.removeObserver(observe, "browser-search-engine-modified");
  });
       
  Services.obs.addObserver(ob2, "browser-search-service");
    window.addEventListener("unload", () => {
      Services.obs.removeObserver(ob2, "browser-search-service");
  });
        
       
   function observe(aEngine, aTopic, aVerb) {
    if (aTopic == "browser-search-engine-modified") {
      aEngine.QueryInterface(Components.interfaces.nsISearchEngine);
      if(aVerb !== "engine-current" && aVerb !==  'engine-default') return;
        ShowCurrentE();
        CMenu();
    }
  }
    
   function ob2(aSubject, aTopic, aData) {
    if(aData === "init-complete" && aTopic === "browser-search-service") {
       if(!!start0) ResetE();
       ShowCurrentE();
       CMenu();
     }
   }
        
  if(!auto) return;
    bar.cmd = bar.doSearch;
    bar.doSearch = function(aData, aWhere, aEngine) {
    this.cmd(aData, aWhere, aEngine);
    ResetE()
  } 
  ShowCurrentE();
})()
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
25楼#
发布于:2021-08-15 13:14
kidzgy:又有新问题了,在xiaoxiaoflood的config的基础上,滚轮切换搜索栏搜索引擎.uc.js用不了了。
// ==UserScript==
// @name           滚轮切换搜索栏搜索引擎.uc.js
// @na...
回到原帖
bar.textbox.inputField 改为 bar.textbox


并将 19 楼中说的 0 改为 100,改后删除配置目录下的 startupCache 文件夹。
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
26楼#
发布于:2021-08-15 14:00
lonely_8:bar.textbox.inputField 改为 bar.textbox


并将 19 楼中说的 0 改为 100,改后删除配置目录下的 startupCache 文件夹。
回到原帖
还是不行,依旧没有效果。
而且延迟改为100的话,会影响ucjsDownloadsManager.uc的弹出速度。
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
27楼#
发布于:2021-08-15 14:38
kidzgy:还是不行,依旧没有效果。
而且延迟改为100的话,会影响ucjsDownloadsManager.uc的弹出速度。
回到原帖
我这里哪怕不改都是没问题的,除了加载时机不同我想不到哪里出错了。
或者试试将该脚本第 11 行前面加上 setTimeout,最后一行改为 【}, 1000);】(不含【】)
并将倒数第二行的 ShowCurrentE(); 改为 setTimeout(ShowCurrentE,  1000);
kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
28楼#
发布于:2021-08-15 15:40
lonely_8:我这里哪怕不改都是没问题的,除了加载时机不同我想不到哪里出错了。
或者试试将该脚本第 11 行前面加上 setTimeout,最后一行改为 【}, 1000);】(不含【】)
并将倒数第二行的 ShowCurrentE(); 改为 se...
回到原帖
还是不行,21楼有我完整的UC脚本,我的火狐版本是91.0 64位
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
29楼#
发布于:2021-08-15 17:29
kidzgy:再请教个问题,像修改这些浏览器界面的css,有没有办法实时反映效果?
我每次都是编辑chrome文件夹下的css,编辑保存完后重启浏览器查看效果,非常耗时。
回到原帖
web开发者工具(ctrl+shift+I) 》 设置(F1) 》 高级设置 》 启用浏览器界面调试工具箱 + 启用远程调试


然后三道杠 》 更多工具 》 浏览器工具箱 (ctrl+shift+alt+I) 》右上角三个点 》 不自动隐藏弹窗
-いたんですか? -ええ、ずっと
上一页 下一页
游客

返回顶部