如何在 RSA Archer GRC 中更改的每个选项卡上执行脚本?

How to execute script on every tab changing in RSA Archer GRC?

我正在尝试使用自定义对象更改 RSA Archer GRC 应用程序布局中许多文本字段的样式。我写了一个脚本,它只在应用程序打开时运行一次。问题是布局包含多个选项卡。更改选项卡后,脚本不再起作用。 那么如何在每个选项卡更改时执行脚本?

var tableId = 'master_DefaultContent_rts_ts3295_s4655_f18821srvgrid_ctl00';
//table with target elements

$(document).ready(function () { //run script when page is loaded
    main();
});

function main() {
    var table = document.getElementById(tableId).getElementsByTagName("tbody")[0];
    var rows = table.getElementsByTagName("tr");

    for (var i = 0; i < (rows.length - 1); i++) {
        var field = rows[i].getElementsByTagName("td")[1];
        var spanElements = field.getElementsByTagName("span"); //target elements

        for (var k = 0; k < spanElements.length; k++) { //apply style for each of them
            var elem = spanElements[k];
            elem.style.fontFamily = "Times New Roman";
            elem.style.fontSize = "14pt";
            elem.style.color = "black";
        }
    }
}
<tabelement onclick="main()">Tab</tabelement>

使用tab上的onclick事件执行main函数

尝试在您的自定义对象中使用它而不是 $(document).ready({});,它应该在每次加载选项卡时触发。

function pageLoad(){
     //code
}