Difference between revisions of "JS.eval"
(added another example!) |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 5: | Line 5: | ||
=== Description === | === Description === | ||
Executes arbitrary JavaScript code on HTML5 platform. | Executes arbitrary JavaScript code on HTML5 platform. | ||
− | < | + | <syntaxhighlight lang="lua"> |
JS.eval(code) | JS.eval(code) | ||
</source> | </source> | ||
Line 14: | Line 14: | ||
=== Examples === | === Examples === | ||
'''Get/set''' | '''Get/set''' | ||
− | < | + | <syntaxhighlight lang="lua"> |
JS.eval(localStorage.setItem('name', 'John')) | JS.eval(localStorage.setItem('name', 'John')) | ||
print(JS.eval(localStorage.getItem('name')) | print(JS.eval(localStorage.getItem('name')) | ||
Line 21: | Line 21: | ||
'''Opens an url''' | '''Opens an url''' | ||
− | < | + | <syntaxhighlight lang="lua"> |
JS.eval([[ | JS.eval([[ | ||
window.open('my.url') | window.open('my.url') | ||
Line 29: | Line 29: | ||
'''In your html5 exports use this to detect if you are in light or dark mode - to change your app or game colors to suit...''' | '''In your html5 exports use this to detect if you are in light or dark mode - to change your app or game colors to suit...''' | ||
− | < | + | <syntaxhighlight lang="lua"> |
sysDark=-1 | sysDark=-1 | ||
Line 43: | Line 43: | ||
'''Sometimes you may not want the user to leave the game without giving a warning that they will lose information, here is code that will allow you to do this on html5 exports:''' | '''Sometimes you may not want the user to leave the game without giving a warning that they will lose information, here is code that will allow you to do this on html5 exports:''' | ||
− | < | + | <syntaxhighlight lang="lua"> |
if JS then | if JS then | ||
JS.eval([[ | JS.eval([[ |
Revision as of 14:28, 13 July 2023
Available since: Gideros 2016.10
Class: JS
Description
Executes arbitrary JavaScript code on HTML5 platform. <syntaxhighlight lang="lua"> JS.eval(code) </source>
Parameters
code: (string) JavaScript code to execute
Examples
Get/set <syntaxhighlight lang="lua"> JS.eval(localStorage.setItem('name', 'John')) print(JS.eval(localStorage.getItem('name')) </source>
Opens an url
<syntaxhighlight lang="lua">
JS.eval([[
window.open('my.url')
]])
</source>
In your html5 exports use this to detect if you are in light or dark mode - to change your app or game colors to suit...
<syntaxhighlight lang="lua">
sysDark=-1
-- device={application:getDeviceInfo()} -- device[1]=="Web" -- only do the next line if html5 export if JS.eval("window.matchMedia('(prefers-color-scheme:dark)').matches")=="true" then sysDark=1 else sysDark=0 end </source> You will end up with sysDark being -1 for 'don't know', 0 for 'light' and 1 for 'dark'.
Sometimes you may not want the user to leave the game without giving a warning that they will lose information, here is code that will allow you to do this on html5 exports:
<syntaxhighlight lang="lua">
if JS then
JS.eval([[
window.saveWarning=false;
window.saveWarningListener = (e) => {
if (window.saveWarning==true) {
e.preventDefault();
e.returnValue=;
}
};
window.addEventListener('beforeunload', saveWarningListener);
]])
end
function saveWarning(f) if JS then if f then JS.eval("window.saveWarning=true;") else JS.eval("window.saveWarning=false;") end end end </source>