首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JavaScript调用Brython函数

从JavaScript调用Brython函数
EN

Stack Overflow用户
提问于 2015-08-03 22:36:56
回答 1查看 3.1K关注 0票数 3

编辑:谷歌集团帖子

我在和布莱顿玩。

我正在努力弄清楚如何从JavaScript执行Brython代码。

doc/en/jsobjects.html <--这看起来像相关的文档页面,但是它似乎缺少一个从JavaScript调用Brython函数的例子。

对于我的具体情况,我正在收听MIDI事件(使用https://github.com/cwilso/WebMIDIAPIShim)。

我希望Brython代码能够响应收到的MIDI事件而执行。

目前我正在努力:

代码语言:javascript
复制
function myMIDIMessagehandler( event ) 
{
    if( brythonListener != null )
        brythonListener( event );

和Brython代码:

代码语言:javascript
复制
<script type="text/python3">

from browser import document as doc, window, html

def foo(event):
    print("BRYTHON!" + event);

window.brythonListener = foo

</script>

但当我按下midi键盘上的音符时,我得到:

我不知道如何处理这个错误,我也不确定这个方法是否正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 04:26:40

已经一年了,所以我想您很久以前就已经解决了,但是假设您的方法在原则上是正确的,我也是这样做的,当您将它映射为window.js_func = py_func时,它就会工作。下面是我目前正在使用的用于铬/火狐的代码中的一些相关部分:

代码语言:javascript
复制
<!-- Bottom of HTML.. -->
<script type="text/javascript">
var jv_funcs = {
    openfile:function(iptElement, fileType){
        // some file opening code then a call back to python
        open_file(reader.result, fileType);
    }
};
</script>
<script type="text/python3" src="src/pythonscript.py"></script>


# separate python script in my case 'pythonscript.py'
def open_file(fileContent, fileType):
    # show the file in the dom..

def open_clicked():
    window.jv_funcs.openfile(document["idOpen"], "fileType")


window.open_file = open_file
document["btnOpen"].bind("click", open_clicked)

需要知道的是,如果您使用window.console.log(事件),您将把事件作为可以从开发工具中探索的对象。另一方面,打印将其压平成纯文本。

一个更大的问题可能是,使用Brython找出某些类型错误的原因可能是相当棘手的(尽管如此,它是惊人的,并且工作得很好)。

有一件事可以让我们更容易找到这样的问题的根源,那就是源代码映射。最近,我将一个个人项目从Brython转移到跨隐窝,发现Transcrypt的源代码地图支持非常有助于分离错误的原因。因此,我没有尝试以增量的方式执行,而是大胆地编译了python源代码,并逐个跟踪错误,直到一切正常运行(python部分大约有2700行)。对我来说,这是不可能的,但对于一个了解Brython内部结构的人来说,这是不可能的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31797867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档