首页 > 解决方案 > Tampermonkey 脚本中的 document.getElementById 只能间歇性地工作

问题描述

我正在尝试在 Tampermonkey 中开发一个脚本以在 BoardGameArena 上使用。该脚本使用setInterval并且由于某种原因我无法始终从浏览器中获取元素。例如,在此页面上,我在浏览器控制台中看到:

myvar was found: <a id="navbutton_gamelobby" class="menu_item " href="/lobby">
myvar is null: null 
myvar is null: null 
myvar was found: <a id="navbutton_gamelobby" class="menu_item " href="/lobby">
myvar is null: null 
myvar is null: null 
...

这是脚本

// ==UserScript==
// @name         BGA test
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  test on https://boardgamearena.com/gamepanel?game=stoneage
// @author       You
// @match        https://boardgamearena.com/*
(function() {
    'use strict';
    var t = setInterval(myfun,1000);
    function myfun() {
        var myvar = document.getElementById('navbutton_gamelobby');
        if (myvar) {
            console.log('myvar was found:', myvar);
        } else {
            console.log("myvar is null:", myvar);
        }
    };
})();

我尝试使用setTimeoutorwaitForKeyElements希望等待页面加载,但它没有帮助。

标签: javascripttampermonkey

解决方案


推荐阅读