2016-05-27 1 views
0

J'utilise un script Tampermonkey dans Chrome qui augmente la longueur maximale des menus "Déplacer vers" et "Étiqueter sous" dans Gmail. Lorsque Tampermonkey a mis à jour automatiquement la dernière version majeure il y a quelques mois, le script a cessé de fonctionner. Notre directeur du développement m'a aidé avec le script il y a quelques années et depuis que je suis un développeur amatuer je n'ai pas eu beaucoup de chance de comprendre pourquoi cela ne fonctionne plus.Problèmes avec le script Tampermonkey pour Gmail après la mise à jour

// ==UserScript== 
// @name   Gmail CSS updates - menus 
// @author   Tyler Lesmeister 
// @namespace  http://www.onsharp.com 
// @description  Increases the height of Move to/Labels menus in Gmail 
// @version   0.3 
// @released  2014-03-20 
// @compatible  Greasemonkey 
// @match   https://mail.google.com/mail/u/* 
// @require   https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js 
// ==/UserScript== 

jq = {}; 
fix = {}; 

(function($){ 
    jq = $; 

    // fix css and ui 
    fix.go = function(){ 

     // update the css/styles of things we dont like 
     $('body').append(" <style id='monkey'> " + 
         " .J-M-Jz { max-height: none !important; }.J-M {max-height: 800px !important; } </style>"); 

    };  

})(jQuery.noConflict()); 

document.addEventListener("DOMContentLoaded", function(event) { 
    //console.log("DOM fully loaded and parsed"); 
    if(window.location == window.parent.location) { 
     if (document.getElementById("loading")) { 
      fix.go(); 
     } 
    } 
}); 



;(function ($, window) { 
    var intervals = {}; 
    var removeListener = function(selector) { 
     if (intervals[selector]) { 
      window.clearInterval(intervals[selector]); 
      intervals[selector] = null; 
     } 
    }; 
    var found = 'waitUntilExists.found'; 

    /** 
* @function 
* @property {object} jQuery plugin which runs handler function once specified 
*   element is inserted into the DOM 
* @param {function|string} handler 
*   A function to execute at the time when the element is inserted or 
*   string "remove" to remove the listener from the given selector 
* @param {bool} shouldRunHandlerOnce 
*   Optional: if true, handler is unbound after its first invocation 
* @example jQuery(selector).waitUntilExists(function); 
*/ 

    $.fn.waitUntilExists = function(handler, shouldRunHandlerOnce, isChild) { 

     var selector = this.selector; 
     var $this = $(selector); 
     var $elements = $this.not(function() { return $(this).data(found); }); 

     if (handler === 'remove') { 
      // Hijack and remove interval immediately if the code requests 
      removeListener(selector); 
     } 
     else { 
      // Run the handler on all found elements and mark as found 
      $elements.each(handler).data(found, true); 

      if (shouldRunHandlerOnce && $this.length) { 
       // Element was found, implying the handler already ran for all 
       // matched elements 
       removeListener(selector); 
      } 
      else if (!isChild) { 
       // If this is a recurring search or if the target has not yet been 
       // found, create an interval to continue searching for the target 
       intervals[selector] = window.setInterval(function() { 
        $this.waitUntilExists(handler, shouldRunHandlerOnce, true); 
       }, 500); 
      } 
       } 
     return $this; 
    }; 

}(jQuery, window)); 

Si j'inspectent l'élément dans Chrome pour ouvrir la console dev je peux voir que Tampermonkey n'injectait les nouvelles valeurs. Si je change manuellement les valeurs dans la console de développement, je suis capable de produire les résultats que je recherche. Voir les captures d'écran ci-dessous au Imgur album (apparemment je ne peux pas poster des images ou inclure plus de deux liens parce que je dois au moins 10 points de réputation ...)

http://imgur.com/a/r5jeu

Comme vous pouvez le voir, je m capable de modifier la longueur des menus à travers la console très bien. Tampermonkey ne le fait pas et je suppose que c'est parce que quelque chose dans mon script est obsolète. Toute aide serait très appréciée.

Répondre

0

J'ai décidé de repartir de zéro. J'ai été en mesure d'accomplir la même chose en utilisant le script suivant:

// ==UserScript== 
// @name   Gmail Enhancements 
// @namespace http://tyler.bio 
// @version  0.1 
// @description Make Gmail better 
// @author  Tyler Lesmeister 
// @match  https://mail.google.com/mail/* 
// @require http://code.jquery.com/jquery-latest.js 
// @grant GM_addStyle 
// ==/UserScript== 

// increase height of folder/label menus 
GM_addStyle(" .J-M {max-height: 800px !important; } .J-M-Jz { max-height: 800px !important; } ");