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);
})();
Ответы
Ответ 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);
})();