【问题标题】:Call Javascript from python从 python 调用 Javascript
【发布时间】:2016-12-30 00:43:23
【问题描述】:

我正在寻找一种从 python 函数调用 js 函数的方法。我来找你是因为我还需要我的 js 函数来使用 DOM,所以例如 pyv8 不是一个解决方案。你们有什么想法吗?有没有可能?

提前致谢。

【问题讨论】:

  • “我还需要我的 js 函数来使用 DOM”。 javascript DOM 存在于浏览器中(除非您正在模拟它)。 Python 在服务器上运行。您是在问如何从 python 代码触发浏览器端 javascript 的执行?
  • 是的,就是这样。 Kode.Error404 的解决方案似乎很好。

标签: javascript python


【解决方案1】:

PyExecJS 似乎是一个不错的选择。

>>> 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

安装:

$ pip install PyExecJS

【讨论】:

    【解决方案2】:

    根据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 
    

    Js2Py 的优点包括可移植性和与 python 的极易集成(因为基本上 JavaScript 正在被翻译成 python)。

    安装:

    pip install js2py
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 2018-02-22
      • 2012-10-21
      相关资源
      最近更新 更多