@centerdevs said in Как из скрипта переименовать название браузера в веб интерфейсе?:
@Fox Работа устроена так что некоторые потоки запускаются из скрипта, и их нет в объекте который возвращает GetTasks.
Так и было задумано, метод GetTasks() возвращает список функций запущенных из веб интерфейса, он не покажет потоки запущенные иначе.
А на счёт ID потока, часто бывает что в веб-интерфейсе у потока ID = 1, а в скрипте THREAD_INDEX = 5, ситуация описана выше. Получается что у меня нет точного идентификатора который имел бы одинаковое значение и там и там.
Какой смысл привязываться к номеру потока в принципе? Если вы создаёте потоки из скрипта, вы не получите к нему доступ через GetTasks(). Что бы открыть браузер вызванного потока, вам нужно будет прослушивать событие "browser_add" что бы в нём получить id браузера
Создавайте все потоки из веб интерфейса, зачем создавать потоки из скрипта?
Если каким-то обазом получать BrowserId внутри скрипта - было бы идеально.
Чисто технически вы можете прослушивать событие "browser_add" и сохранять данные в объекте в веб интерфейсе. Удобнее всего было бы использовать ключ номер потока, а значение id браузера. Так как получить данные из интерфейса внутри потока во время его работы возможно только через глобальную переменную, то при получении данных от события их можно дублировать в глобальную переменную
Api.SetEventHandler(async function (EventType, EventData) {
if (EventType == "browser_add") {
var obj = await Api.GetGlobalVariable("OBJ")
if(obj == "") obj = {};
obj[EventData.thread_number] = EventData.browser_id;
await Api.SetGlobalVariable("OBJ", obj);
}
67cfd78a-842a-452b-9c3b-b7983344a538-изображение.png
Тестовый скрипт: 2588.xml