gpt4 book ai didi

javascript - 用户脚本 getElementsByTagName 未返回 Jira 页面的所有链接

转载 作者:行者123 更新时间:2023-11-28 05:22:05 25 4
gpt4 key购买 nike

我需要使用用户脚本使内部网络上的 Jira 页面以红色显示我的受让人姓名,而不使用任何外部代码 - 不使用 jQuery 等。并且尽可能简单,因为我刚刚学习。示例页面在这里( ListView ):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";
}
}

如何使其在受让人栏中突出显示我的名字?

附注这与 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);

一秒钟后链接将突出显示。这是一个 hacky 解决方案,但如果它有效,那么至少会告诉您异步加载实际上是问题所在。

如果您只想更改 ID 为“assignee_myusername”的元素的样式,则不需要使用 getElementsByTagName ,您可以使用getElementById :

window.setTimeout(function () {
var element = document.getElementById( 'assignee_myusername' );
element.style.color = "red";
element.style.backgroundColor = "black";
}, 1000);

关于javascript - 用户脚本 getElementsByTagName 未返回 Jira 页面的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40474001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com