RO/setBrowserAjaxHandler

From Multi Theft Auto: Wiki
Revision as of 14:39, 8 April 2020 by Vinyard (talk | contribs) (Created page with "__NOTOC__ {{RO/Funcție client}} {{New feature/item|3.0151|1.5.1|| Această funcție oferă o resursă ajax ce poate fi solicitată în vederea comunicării Lua/Javascript pen...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Această funcție oferă o resursă ajax ce poate fi solicitată în vederea comunicării Lua/Javascript pentru un element de tip browser.

Sintaxă

bool setBrowserAjaxHandler (browser webBrowser, string url [, function handler])

OOP Syntax Help! I don't understand this!

Method: browser:setAjaxHandler(...)


Argumente Necesare

  • webBrowser: Navigatorul web ce va executa codul Javascript
  • url: adresa URL pentru endpoint
[[|link=|]] Atenționare: Nu utilizați aceeași cale (path) pentru un fișier existent ca pentru argumentul URL. Un handler ajax are o prioritate mult mai crescută față de alte fișiere, ceea ce va duce la incapacitatea de a accesa fișierul original dacă handler-ul ajax este atașat aceleiași căi (path).

Argumente Opționale

  • handler: Funcția ce trebuie solicitată dacă webBrowser încearcă să deschidă un endpoint ajax. Dacă acest argument este nil sau este omis, handler-ul ajax pentru URL va fi șters.

Informații Suplimentare

Funcția ce trebuie solicitată (dacă este specificată), va fi solicitată cu două tabele, reprezentând parametrii GET și POST. Funcția solicitată poate returna un string ce va fi oferit navigatorului web ca și conținut de fișier.

Exemplu

Acest exemplu va reda toți parametrii GET, precum și numărul de solicitări făcute de către un endpoint ajax.

-- Pentru a randa navigatorul web pe întreg ecranul, avem nevoie de dimensiunile ecranului.
local screenWidth, screenHeight = guiGetScreenSize()
 
-- Vom realiza un navigator web în modul local. Nu vom putea încărca un URL extern.
local webBrowser = createBrowser(screenWidth, screenHeight, true, false)
 
-- Funcție pentru randarea navigatorului web.
function webBrowserRender()
    -- Randează navigatorul web pe întreg ecranul.
    dxDrawImage(0, 0, screenWidth, screenHeight, webBrowser, 0, 0, 0, tocolor(255, 255, 255, 255), true)
end

local counter = 0
setBrowserAjaxHandler(webBrowser, "ajax.html",
function(get, post)
    counter = counter + 1
    local output = string.format("<pre>You have requested this page %d times.\n", counter)

    -- Enumeră parametrii
    local getParameters = "Parametrii GET: \n"
    for k, v in pairs(get) do 
        getParameters = getParameters .. string.format("[%s] = %s\n", k, v)
    end 

    output = output.. getParameters .."</pre>"
    return output
end);
 
-- Evenimentul onClientBrowserCreated va fi declanșat, după care navigatorul web va fi inițializat.
-- După ce acest eveniment a fost declanșat, vom putea încărca URL-ul și începe afișare.
addEventHandler("onClientBrowserCreated", webBrowser, 
function()
    -- După ce navigatorul web a fost inițializat, putem încărca fișierul nostru.
    loadBrowserURL(webBrowser, "http://mta/local/ajax.html?hello=world")

    -- Acum putem randa navigatorul web.
    addEventHandler("onClientRender", root, webBrowserRender)
end)

Redare

Redă true dacă handler-ul ajax a putut fi creat/șters.

Vizualizați de asemenea

Funcții GUI