jquery - Jupyter Notebook 扩展 - 加载 HTML
问题描述
我写了一个 jupyter notebook 扩展。它将一个项目添加到内核菜单,单击该项目时,会启动一个包含表单的模式对话框。
该表单目前完全在 javascript 中定义。例如,document.createElement("form") 等。我怎样才能在 HTML 文件中定义它并将该 HTML 导入到 javascript 代码中?我试图像这样使用jquery的加载方法:
var form = document.createElement("form");
form.id = "form";
$( "#form" ).load("form.html");
其中 form.html 与 javascript 代码位于同一目录中。然而,什么也没有发生。控制台中没有记录错误。此行为与未找到 HTML 文件一致。我相信 _jupyter_nbextension_paths 不会将 HTML 文件与 javascript 文件一起复制。因此,什么都没有加载。
我查看了现有的 jupyter notebook 扩展,并没有找到有人将 html 导入他们的 javascript 代码的示例。
解决方案
我的最终解决方案包括将变量 FORM_HTML 中的 html 传递给 jquery,然后通过 jupyter 的对话框库以模式显示。它看起来像这样
define([
"base/js/dialog"
], function(dialog){
dialog.modal({
title: "title",
body: $(FORM_HTML),
open: onModalOpen,
buttons: {
Exit: {id: EXIT_BUTTON_ID},
}
});
})
推荐阅读
- deep-learning - ValueError: 层序贯_3 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:(无,180)
- docker - docker compose 中的主机和端口转发
- reactjs - 覆盖 URL 加载器限制 create-react-app craco
- maven - Liquibase Maven 插件编号格式异常
- javascript - vite@2 构建中缺少组件和资产
- python - 如何在浏览器中更改 S3 XML 错误消息?
- jcr - 无法为不存在的 blob 创建下载 URI
- python - Discord.py 每个用户的冷却时间不同
- python - 如何在 Python 3 中获取结果后重复此代码
- bamboo - 使用 REST API 从 Bamboo 拉取给定版本的构建细节