Как выполнить скрипт на каждой вкладке, изменяющейся в RSA Archer GRC? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь изменить стили многих текстовых полей в макете приложения в 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";
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Попробуйте использовать это в своем пользовательском объекте вместо $(document).ready({});, он должен срабатывать при каждой загрузке вкладки.

function pageLoad(){
     //code
}
0 голосов
/ 04 июня 2019
<tabelement onclick="main()">Tab</tabelement>

Используйте событие onclick на вкладке для выполнения основной функции.

...