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 ...)
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.