为什么 Greasemonkey javascript 报告一个元素有 class 而 Web 开发者工具表明它似乎没有

Why is Greasemonkey javascript reporting an element has a class when web developer tools indicates that it doesnt seem to have

我正在尝试编写一个自动按下页面上的按钮的 greasemonkey 脚本,但只有在禁用选项卡时,该选项卡才会显示重复记录,并且当我使用 Web Devloper 在 firefox 中检查页面时 Tools/Inspector 我发现当我们有重复记录并且启用了选项卡时,我们有

<li class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="duplicates-tab" aria-labelledby="ui-id-2" aria-selected="false"><a href="#duplicates-tab" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-2">Release Duplicates</a></li>

但是当它被禁用时我有

<li class="ui-state-default ui-corner-top ui-state-disabled" role="tab" tabindex="-1" aria-controls="duplicates-tab" aria-labelledby="ui-id-2" aria-selected="false" aria-disabled="true"><a href="#duplicates-tab" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-2">Release Duplicates</a></li>

即禁用时 link 的封闭列表元素有一个额外的 ui-state-disabled class(这是我在检查 html)

时发现的唯一区别

所以我写了我的greasemonkey脚本如下

// ==UserScript==
// @name     AutoContinueAddRelease
// @version  
// @grant    none
// @include  https://musicbrainz.org/release/add
// ==/UserScript==
window.addEventListener ("load", Greasemonkey_main, false);

function Greasemonkey_main () 
{
  var as = document.getElementsByTagName("a");
  for(a of as)
  {
    if(a.href=='https://musicbrainz.org/release/add#duplicates-tab')
    {
      alert(a.parentElement.classList);  
      if(a.parentElement.classList.contains('ui-state-disabled'))
      {
        var button = document.getElementById("enter-edit");   
        if(button!=null)
        {
          button.click();
        }
      }
      break;
    }
  }
}

但在这两种情况下,它都会找到 ui-state-disabled class 并提交表单,这不是我想要的,我不想明白为什么。

根据@Ourobirus 评论

,通过设置超时来延迟 运行 脚本直到页面加载一段时间后解决了这个问题
// ==UserScript==
// @name     AutoContinueAddRelease
// @version  
// @grant    none
// @include  https://musicbrainz.org/release/add
// ==/UserScript==
setTimeout(check, 5000);
function check()
{
  var as = document.getElementsByTagName("a");
  for(a of as)
  {
    if(a.href=='https://musicbrainz.org/release/add#duplicates-tab')
    {
      if(a.parentElement.classList.contains('ui-state-disabled'))
      {
        var button = document.getElementById("enter-edit");   
        if(button!=null)
        {
          button.click();
        }        
      }
      else
      {
          alert('duplicatesFound');
      }
      break;
    }
  }
}