• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос вывод кнопок по верх браузера Создать тему

youngBeaver

Покинул форум.
BackEnd developer
24 Янв 2023
1,202
469
171
Посмотреть вложение 9943

JavaScript:
let browserState = [null, false]; // первое значение отвечает за наличие браузера в массиве, есть ли он, второе значение за то, можно ли закрыть этот браузер нажатием

function Test() {
    console.log("entry");
    if (!browserState[0] || !browserState[1]) return;
   
    console.log("delete");
    browserState = [null, false];
}

Test();
значит я не прав :)
 

kirillzver

Гуру
BackEnd developer
2 Ноя 2020
190
118
104
|| - или, значит, если есть объект ИЛИ его можно закрыть, тогда он закончит выполнения функции. Тогда, если есть объект, но будет falsy, то все равно попытается закрыть CEF
Не, оно выполнит проверку и будет return из функции.
У него же if () return, а не if () {} :)
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,012
1,742
211
28
значит я не прав :)
Ты прав, и то что ты выше скинул (объяснение работы), тоже правильно, только ты перепутал запись условия.
Так точно. Здесь важна последовательность записи.
Мы для начала ВСЕГДА проверяем браузерный объект. Если он не равен что-то, что не является null, то проверка уже закончится и будет return.
Если же в объекте браузера что-то есть, то мы только тогда сравниваем второй индекс массива и сверяемся, является ли он true. Если нет - опять же return.
 
Последнее редактирование:
Реакции: kirillzver

kirillzver

Гуру
BackEnd developer
2 Ноя 2020
190
118
104
Так точно. Здесь важна последовательность записи.
Мы для начала ВСЕГДА проверяем браузерный объект. Если он не равен что-то, что не является null, то проверка уже закончится и будет return.
Если же в объекте браузера что-то есть, то мы только тогда сравниваем второй индекс массива и сверяемся, является ли он true. Если нет - опять же return.

Если бы я СНАЧАЛА проверял browserState[1], а потом [0], то да, получился бы твой случай.
Разницы нет, что [0] первым, что [1] первым, так как в любом случае, если один из них будет приравнен к false, то будет return.
 

kirillzver

Гуру
BackEnd developer
2 Ноя 2020
190
118
104
Разницы нет, что [0] первым, что [1] первым, так как в любом случае, если один из них будет приравнен к false, то будет return.

Тут уже больше дело в логике, нет смысла [1] смотреть первым, так как если нет браузера, то какая разница что в нём ;D
 
Реакции: XDeveluxe

yaneagentfib

Новый участник
13 Июн 2023
47
4
43
Не надо никаких танцев с бубном.
Нужен только доступ к объекту браузера, который создан.
А какая там открыта страница — существенной разницы нет.

В browser.execute вставляешь:

JavaScript:
document.addEventListener("DOMContentLoaded", () => { // Дожидаемся загрузки DOM дерева
    const button = document.createElement("button"); // инициализируем кнопку
    button.classList.add("btn"); // можем присвоить желаемый класс, например .btn
    button.innerHTML = "Нажми меня"; // Текст внутри кнопки

    button.onclick = function() {
        // любые действия при нажатии кнопки
        mp.trigger("browser.hidePage"); // например вызов эвента на клиент
    }

    document.body.appendChild(button); // вставляем кнопку в тэг body
    // как альтернатива, можно получить какой-то элемент, например с айди container и вставить туда
    const container = document.getElementById("container");
    container.appendChild(button);
    // тут уже всё зависит от фантазии, любые желаемые манипуляции.

    // точно также можно запихнуть и стили на страницу
    const styles = document.createElement("style");
    styles.innerText = ".btn{background: #000}";
    document.body.appendChild(styles); // теперь фон кнопки будет черный.
});
спасибо большое, именно то что я искал!
 
Реакции: XDeveluxe

Similar threads