{.section-title.accent.text-primary} # Scripting internals Internally, scripts are always loaded inside `iframes`. You can load a script: 1. Using the [`script` property in your map properties](scripting.md#adding-a-script-in-the-map) 2. or from an iframe [opened as a co-website](scripting.md#adding-a-script-in-an-iframe) or [embedded in the map](website-in-map.md#allowing-the-scripting-api-in-your-iframe) ## Script restrictions If you load a script using the `script` property in your map properties (solution 1), you need to understand that WorkAdventure will generate an iframe, and will load the script inside this iframe. Things you should know: {.alert.alert-warning} The [iframe is sandboxed](https://blog.dareboost.com/en/2015/07/securing-iframe-sandbox-attribute/) This means that the iframe is generated with: ```