I am looking for a way to call a js function from a python function. I am coming to you because I also need my js function to use DOM, so pyv8 for example is not a solution.. Do you guys have any idea? Is it even possible?
Thanks in advance.
I am looking for a way to call a js function from a python function. I am coming to you because I also need my js function to use DOM, so pyv8 for example is not a solution.. Do you guys have any idea? Is it even possible?
Thanks in advance.
According to https://stackoverflow.com/a/30537286/6353933,
import js2py js = """ function escramble_758(){ var a,b,c a='+1 ' b='84-' a+='425-' b+='7450' c='9' document.write(a+c+b) } escramble_758() """.replace("document.write", "return ") result = js2py.eval_js(js) # executing JavaScript and converting the result to python string
Advantages of Js2Py include portability and extremely easy integration with python (since basically JavaScript is being translated to python).
To install:
pip install js2py
PyExecJS seems to be a good option.
>>> import execjs >>> execjs.eval("'red yellow blue'.split(' ')") ['red', 'yellow', 'blue'] >>> ctx = execjs.compile(""" ... function add(x, y) { ... return x + y; ... } ... """) >>> ctx.call("add", 1, 2) 3
to install:
$ pip install PyExecJS
PythonMonkey can be used to execute JavaScript and WebAssembly in Python.
import pythonmonkey as pm pm.eval(""" function add(x, y) { return x + y; } """) js_adder = pm.eval('add') print(js_adder(1,2)) # outputs 3.0 pm.eval('console.log("Hello from JavaScript");') # outputs: Hello from JavaScript
Installation:
$ pip install pythonmonkey