我需要在内部网络上创建我的Jira页面,使用用户脚本显示我的受理人名称,不使用任何外部代码 - 没有jQuery等等。尽可能简单,因为我只是在学习。 示例页面在这里(列表视图):https://jira.atlassian.com/issues/?filter=-5
我的内部网页上有以下标记,其中包含我的名字,如下所示:
<a class="user-hover" rel="myusername" id="assignee_myusername" href="https://jira.mydomain.org/secure/ViewProfile.jspa?name=myusername" target="_parent">Myfirstname Mylastname</a>
我的用户脚本只在页面的顶行和底行进行颜色更改(我已登录;它会更改用户特定的大多数链接)。但列出案件和受让人名单的中间人并未受到影响。这是我的剧本:
// ==UserScript==
// @name Jira
// @namespace https://jira.mydomain.org/secure/Dashboard.jspa
// @include https://jira.mydomain.org/*
// ==/UserScript==
var links = document.getElementsByTagName( 'a' );
var element;
for ( var i = 0; i < links.length; i++ ) {
element = links[ i ];
if ( element.id = "assignee_myusername" ) {
element.style.color = "red";
element.style.backgroundColor = "black";
}
}
如何在“受理人”栏中突出显示我的名字?
P.S。这与Ajax问题不同,因为它使用我在开头指定的外部代码 - 没有外部代码。没有外部代码。
答案 0 :(得分:0)
我的猜测是,当您的用户脚本执行时,尚未加载要编写脚本的Jira页面部分。 Jira使用Ajax以异步方式加载页面的一部分。尝试在代码周围添加setTimeout
:
window.setTimeout(function () {
var links = document.getElementsByTagName( 'a' );
var element;
for ( var i = 0; i < links.length; i++ ) {
element = links[ i ];
if ( element.id = "assignee_myusername" ) {
element.style.color = "red";
element.style.backgroundColor = "black";
}
}
}, 1000);
这将在一秒钟后突出显示链接。它是一个hacky解决方案,但如果它有效,那么至少会告诉你异步加载实际上是问题。
如果您只想更改ID为“assignee_myusername”的元素的样式,则不需要使用getElementsByTagName
,您可以使用getElementById
:
window.setTimeout(function () {
var element = document.getElementById( 'assignee_myusername' );
element.style.color = "red";
element.style.backgroundColor = "black";
}, 1000);