似乎初始化brython需要这样做:
<body onload="brython()">在链接了brython.js之后,我尝试在另一个<script>中调用js中的brython(),但似乎没有被调用。
当我最终在浏览器控制台中调用brython时,它会调用brython,甚至执行我的python代码。
为了给出一个完整的例子来说明什么不起作用,这里有一个例子。我可能对javascript如何以及何时编译和执行缺乏一些基本的知识……
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/js/brython.js"></script>
</head>
<!-- <body onload="brython()"> -->
<body>
<script type="text/javascript">
console.log("calling brython() here");
brython();
console.log("I just called brython()");
</script>
<script type="text/python">
from browser import document, alert
def echo(*args):
alert("Hello {} !".format(document["zone"].value))
document["test"].bind("click", echo)
print("what")
</script>
<p>Your name is : <input id="zone" autocomplete="off">
<button id="test">clic !</button>
</body>
</html>发布于 2017-12-14 20:28:28
函数brython()搜索所有具有type="text/python"属性的脚本,并执行其中的Python代码。
在您的示例中,在调用函数时,Python脚本尚未加载,因此找不到它并因此未被执行也就不足为奇了。如果您将Javascript程序放在Python脚本之后,它将按照您的预期工作。
https://stackoverflow.com/questions/47518719
复制相似问题