Подтвердить что ты не робот

Tampermonkey переопределяет ярлыки JIRA

У меня есть tampermonkey script, который окрашивает комментарии JIRA в зависимости от их текста. Расцветка работает так, как ожидалось. Но все события нажатия кнопки JIRA деактивируются.

Перед script я смог нажать ., чтобы активировать меню действий или нажать m, чтобы добавить комментарий и т.д.

После script ничего не работает.

Информация: Когда я запускаю script в Chrome Snippet Windows, все в порядке - все ярлыки все еще работают и происходит раскраска. Это позволяет мне предположить, что тип Tampermonkey переопределяет или развязывает ключевые события в JIRA.

Кто-нибудь знает, как этого избежать?

script

    // ==UserScript==
// @name         JiraCommentColors
// @namespace    com.company.tamperscripts
// @version      0.2
// @description  colorize comments in JIRA made by awesome xetra11
// @author       xetra11
// @match        https://jira.company.com/browse/*
// @grant        none
// @require http://code.jquery.com/jquery-1.12.4.min.js
// ==/UserScript==


(function() {
    var opacity = '0.3';
    var borderStyle = '1px solid black';
    var commentSelector = "div[id*='comment']";
    var zwischenstandSelector = 'a[name=Zwischenstand]';
    var fragenSelector = 'a[name=Frage]';
    var wartenSelector = 'a[name=Warten]';
    var colorZwischenstand = 'rgba(0, 102, 0, '+ opacity +')';
    var colorFrage = 'rgba(0, 153, 204, '+ opacity +')';
    var colorWarten = 'rgba(255, 102, 0, '+ opacity +')';

    var paintZwischenstand = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorZwischenstand)
            .css('border', borderStyle);
    };
    var paintFrage = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorFrage)
            .css('border', borderStyle);
    };
    var paintWarten = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorWarten)
            .css('border', borderStyle);
    };

    $(zwischenstandSelector).each(paintZwischenstand);
    $(fragenSelector).each(paintFrage);
    $(wartenSelector).each(paintWarten);
})();
4b9b3361

Ответ 1

Возможная причина может заключаться в том, что вы не указали @run-at на document-end. Попробуйте приведенный ниже код

// ==UserScript==
// @name         JiraCommentColors
// @namespace    com.company.tamperscripts
// @version      0.2
// @description  colorize comments in JIRA made by awesome xetra11
// @author       xetra11
// @match        https://jira.company.com/browse/*
// @grant        none
// @run-at       document-end
// @require http://code.jquery.com/jquery-1.12.4.min.js
// ==/UserScript==


(function() {
    var opacity = '0.3';
    var borderStyle = '1px solid black';
    var commentSelector = "div[id*='comment']";
    var zwischenstandSelector = 'a[name=Zwischenstand]';
    var fragenSelector = 'a[name=Frage]';
    var wartenSelector = 'a[name=Warten]';
    var colorZwischenstand = 'rgba(0, 102, 0, '+ opacity +')';
    var colorFrage = 'rgba(0, 153, 204, '+ opacity +')';
    var colorWarten = 'rgba(255, 102, 0, '+ opacity +')';

    var paintZwischenstand = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorZwischenstand)
            .css('border', borderStyle);
    };
    var paintFrage = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorFrage)
            .css('border', borderStyle);
    };
    var paintWarten = function(index, element){
        $(element).closest(commentSelector)
            .css('background-color', colorWarten)
            .css('border', borderStyle);
    };

    $(zwischenstandSelector).each(paintZwischenstand);
    $(fragenSelector).each(paintFrage);
    $(wartenSelector).each(paintWarten);
})();