From Garry's Mod
Revision as of 11:43, 15 May 2016 by Bo98 (Talk | contribs)
Jump to: navigation, search
 DHTML:Call( )



Runs/Executes a string as JavaScript code.


This function does NOT evaluate expression (i.e. allow you to pass variables from JavaScript (JS) to Lua context).
Because a return value is nil/no value (a.k.a. void).
If you wish to pass/return values from JS to Lua, you may want to use DHTML:AddFunction function to accomplish that job.

NOTE This function is equivalent to DHTML:QueueJavascript
DHTML:QueueJavascript( js ) -- Where DHTML is a DHTML panel.


string js

Specify JavaScript code to be executed.



Shows how to change document.body.innerHTML property by calling this function on DHTML panel.

-- First we create a container, in this case it is a full-screen Derma Frame window.
local dframe = vgui.Create( 'DFrame' )
dframe:SetSize( ScrW(), ScrH() )
dframe:SetTitle( "Garry's Mod Wiki" )
dframe:MakePopup() -- Enable keyboard and mouse interaction for DFrame panel.

-- Create a new DHTML panel as a child of dframe, and dock-fill it.
local dhtml = vgui.Create( 'DHTML', dframe )
dhtml:Dock( FILL )
-- Navigate to Garry's Mod wikipedia website.
dhtml:OpenURL( 'https://wiki.garrysmod.com/index.php' )
-- Run JavaScript code.
dhtml:Call( [[document.body.innerHTML = 'HTML changed from Lua using JavaScript!';]] )

-- This does not throw an error/exception, but instead returns nil/no value.
-- That means you can't pass/return values from JavaScript back to Lua context using this function.
local number = dhtml:Call( '22;' )
print( number )


Inner HTML of document body in DHTML panel is now set to "HTML changed from Lua using JavaScript!".
Personal tools