From Garry's Mod
Jump to: navigation, search
 Panel:RunJavascript( )



Runs/Executes a string as JavaScript code in DHTML panel.


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.


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( '' )
-- Run JavaScript code.
dhtml:RunJavascript( [[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