2016-05-27 2 views
0

Я использую скрипт Tampermonkey в Chrome, который увеличивает максимальную длину меню «Переместить в» и «Ярлык как» в Gmail. Когда Tampermonkey автоматически обновляется до последней крупной версии несколько месяцев назад, сценарий перестает работать. Наш менеджер по развитию помог мне с сценарием пару лет назад, а так как я разработчик amatuer, мне не очень повезло, почему он больше не работает.Проблемы с скриптом Tampermonkey для Gmail после обновления

// ==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)); 

Если я проверить элемент в Chrome, чтобы открыть Dev консоль я могу видеть, что Tampermonkey не впрыскивать новые значения. Если я вручную изменю значения в консоли dev, я могу представить результаты, которые я ищу. Смотрите скриншоты на ниже Imgur альбома (видимо, я не могу размещать какие-либо изображения или включать в себя более чем две ссылки, потому что мне нужно как минимум 10 репутации ...)

http://imgur.com/a/r5jeu

Так как вы можете видеть, я m умеет очень хорошо изменять длину меню через консоль. Tampermonkey не делает этого, и я предполагаю, что это потому, что что-то в моем скрипте устарело. Любая помощь приветствуется.

ответ

0

Я решил начать с нуля. Я смог выполнить то же самое, используя следующий сценарий:

// ==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; } "); 
Смежные вопросы