Skip to content

Commit

Permalink
Document __BRYTHON__.whenReady() and "load" event on <SCRIPT> elements
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreQuentel committed Nov 27, 2023
1 parent ae3401f commit f64e51d
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
39 changes: 39 additions & 0 deletions www/doc/en/jsobjects.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,9 +290,27 @@ window.echo = echo
conflict with names defined in a Javascript program or library used in the page.
</strong>

### Properties of object `__BRYTHON__`

The object `__BRYTHON__` exposes attributes that can be used by Javascript
programs to interact with objects defined in Python scripts in the same page.


*`__BRYTHON__`.whenReady*

> A Javascript `Promise` resolved when Brython is loaded and can be used by
> Javascript programs
<blockquote>
```xml
function use_brython(){
// code here
}

__BRYTHON__.whenReady.then(use_brython)
```
</blockquote>

*`__BRYTHON__`.getPythonModule(module_name)*

> if the Python module named _module_name_ is imported in the page, returns
Expand Down Expand Up @@ -323,6 +341,27 @@ document.getElementById('btn').addEventListener('click',
```
</blockquote>

Before using a Python module it is required to make sure that it is actually
loaded and executed. For that, use the "load" event on the HTML element
`<script type="text/python">`:

<blockquote>
```xml
<script type="text/python" debug=1 id="s1">
x = 0
</script>


<script>
var s1 = document.getElementById('s1')
s1.addEventListener('load', function(script){
var module = __BRYTHON__.getPythonModule('s1')
console.log(module.x)
})
</script>
```
</blockquote>

*`__BRYTHON__`.pythonToJS(_src_[, _script_id_])*

> converts the Python source code `src` into a string that holds its
Expand Down
39 changes: 39 additions & 0 deletions www/doc/fr/jsobjects.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,26 @@ Cette méthode n'est pas recommandée, parce qu'elle introduit un risque de
conflit avec des noms définis dans un programme ou une librairie Javascript
utilisée dans la page.

### Propriétés de l'objet `__BRYTHON__`

L'objet `__BRYTHON__` expose des attributs qui peuvent être utilisés pour
interagir avec des objets définis dans des scripts Python de la même page.

*`__BRYTHON__`.whenReady*

> Un objet Javascript `Promise` qui est résolu quand Brython a été chargé
> dans la page et peut être utilisé par des programmes Javascript
<blockquote>
```xml
function use_brython(){
// code ici
}

__BRYTHON__.whenReady.then(use_brython)
```
</blockquote>

*`__BRYTHON__`.getPythonModule(module_name)*

> si le module Python de nom _module_name_ est importé dans la page, renvoie
Expand Down Expand Up @@ -325,6 +342,28 @@ document.getElementById('btn').addEventListener('click',
```
</blockquote>

Avant d'utiliser un module Python il faut s'assurer qu'il est bien chargé dans
la page. Pour cela on peut utiliser l'événement "load" sur l'élément HTML
`<script type="text/python">`, qui est déclenché quand le script a été
exécuté:

<blockquote>
```xml
<script type="text/python" debug=1 id="s1">
x = 0
</script>


<script>
var s1 = document.getElementById('s1')
s1.addEventListener('load', function(script){
var module = __BRYTHON__.getPythonModule('s1')
console.log(module.x)
})
</script>
```
</blockquote>

*`__BRYTHON__`.pythonToJS(_src_[, _script_id_])*

> convertit le code source Python `src` en une chaine de caractères qui
Expand Down

0 comments on commit f64e51d

Please sign in to comment.