首页 > 解决方案 > 是否不可能在 Google colab 单元中加载 javascript 库?

问题描述

我有创建 HTML 以使用该_repr_html方法可视化 Python 对象的 Python 代码。这意味着我可以通过简单地将对象放入display(obj)我的单元格中,甚至只是将其obj作为最后一个语句放入我的单元格中来显示对象。

该 HTML 从 Internet 加载 javascript 库,例如 jquery 库,如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

但是,当这样的脚本标签是我尝试在 Colab 中可视化的 HTML 的一部分时,它会被完全删除!例如,单元格中的以下代码生成的输出不再包含 script 元素:

HTML("""
<div id="containing"
<div id="div1">
  some text
</div>  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</div>
""")

另一种方法是在每个单元格 ( <script type="text/javascript>..actual javascript ...<script>) 中包含逐字的 javascript 代码,这可行,但似乎是不必要的开销。

有没有更优雅的解决方案?

标签: javascriptgoogle-colaboratory

解决方案


这是一个例子:

from IPython.display import HTML, Javascript, display
from google.colab import output

display(HTML("""
<div id="div1">
  some text
</div>  
"""))

display(Javascript(url="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"))

output.eval_js('''
 $("#div1").append("<p>Hello, JQuery</p>");
''');

包含此示例的完整笔记本是: https ://colab.research.google.com/drive/1xnfhiVsm6u_TkSoni0WaGydigOCPj5Mw


推荐阅读