Javascript Userscript getElementsByTagName未返回Jira页面的所有链接

Javascript Userscript getElementsByTagName未返回Jira页面的所有链接,javascript,jira,userscripts,Javascript,Jira,Userscripts,我需要让我在内部网络上的Jira页面使用用户脚本以红色显示我的受让人姓名,而不使用任何外部代码-无需jQuery等,并且尽可能简单,因为我刚刚学习过。 示例页面如下列表视图所示: 我的内部页面有以下带有我名字的标签,如下所示: <a class="user-hover" rel="myusername" id="assignee_myusername" href="https://jira.mydomain.org/secure/ViewProfile.jspa?name=myuserna

我需要让我在内部网络上的Jira页面使用用户脚本以红色显示我的受让人姓名,而不使用任何外部代码-无需jQuery等,并且尽可能简单,因为我刚刚学习过。 示例页面如下列表视图所示:

我的内部页面有以下带有我名字的标签,如下所示:

<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";
    }
}
如何使其在“受让人”列中突出显示我的姓名


另外,这与Ajax问题不同,因为它使用外部代码,我在开始时指定了外部代码-没有外部代码。没有外部代码。

我猜在执行用户脚本时,您想要编写脚本的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);

我的猜测是,当用户脚本执行时,您想要编写脚本的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);

可能有些内容是通过XHR加载的,您的脚本需要多次调用。你是如何执行你的脚本的?我不是专门执行它的,Ninjakit是-整个脚本都在我的帖子里。我认为它是在页面加载后执行的。我不认为这些页面上的现有ID可能是重复的。\u myusername没有jQuery,没有外部脚本,AJAX问题的重复情况如何?可能是一些内容是通过XHR加载的,您的脚本需要多次调用。你是如何执行你的脚本的?我不是专门执行它的,Ninjakit是-整个脚本都在我的帖子里。我认为它是在页面加载后执行的。我不认为这些页面上的现有ID可能是重复的。\u myusername没有jQuery,没有外部脚本,AJAX问题的重复情况如何?只需添加超时函数,页面上的每个链接都会着色。但一旦我改变是否有其他条件:&&element.rel=myusername,就不会突出显示任何内容。getElementById只做一个元素,getElementsById也完全不做任何事情。请原谅我的初学者错误!比较是==,而不是=。在公共页面上尝试了它,但没有登录到一位报道了多起案件的记者,并且得到了所有与他的名字相关的链接,这很奇怪。然后它像拳头一样砸在我脸上-==,现在它就像一个符咒。对,我忽略了这一点。不管它值多少钱,您应该始终使用==,而不是==。出于所有实际目的,双等号是不推荐的。我也对用户脚本做了一些Jira调整,几年前,我不知道它们是否仍然适用于当前的Jira版本。但是作为参考,它们可能会让您感兴趣:只需添加timeout函数,页面上的每个链接都会着色。但一旦我改变是否有其他条件:&&element.rel=myusername,就不会突出显示任何内容。getElementById只做一个元素,getElementsById也完全不做任何事情。请原谅我的初学者错误!比较是==,而不是=。在公共页面上尝试了它,但没有登录到一位报道了多起案件的记者,并且得到了所有与他的名字相关的链接,这很奇怪。然后它像拳头一样砸在我脸上-==,现在它就像一个符咒。对,我忽略了这一点。不管它值多少钱,您应该始终使用==,而不是==。出于所有实际目的,双等号是不推荐的。我也对用户脚本做了一些Jira调整,几年前,我不知道它们是否仍然适用于当前的Jira版本。但它们可能会让您感兴趣,作为参考: