Jupyter Notebooks:按钮 onclick 在 运行 notebook 中不起作用
Jupyter Notebooks: button onclick doesn't work within running notebook
我有办法使用 IPython.display.Javascript
在单独的选项卡中同时打开多个源文档,以帮助简化错误分析工作流程。
# This opens all links in new tabs upon cell execution
def open_all(links):
# Set up onclick function
javascript = "\n".join(['window.open("{}");'.format(link) for link in links])
return javascript
js = open_all_dockets(links)
display(Javascript(js))
我真正想做的是能够将新标签页中这些链接的打开绑定到一个按钮。这将允许笔记本用户执行所有单元格,并且仍然控制通过单击 打开哪一组源文档。
问题是,只有当笔记本渲染到 HTML 时,这才有效。
# The button opens links in new tabs *only* once the notebook is rendered to HTML
def open_all_button(links):
# Set up onclick function
onclick = "function open() {\n"
onclick += "\n".join([" "*4 + 'window.open("{}");'.format(link) for link in links])
onclick += "}\n"
# Create button
button = "element.append('<button onclick={}>one click open source docs</button>')".format('"open()"')
# Assemble JS
javascript = onclick + button
return javascript
display(Javascript(open_all_button(links)))
我怎样才能让它在 运行 笔记本上工作?
谢谢。
我搞得一团糟,这似乎适用于实时笔记本和输出为 html。我猜单独定义 open()
函数会把事情搞砸,所以我们只是在按钮本身的 onclick
属性 中定义它。
# The button opens links in new tabs *only* once the notebook is rendered to HTML
import IPython.display as display
def open_all_button(links):
# Set up onclick function
onclick = "".join(['window.open("{}");'.format(link) for link in links])
# Create button
javascript = "element.append('<button onclick=" + onclick +">one click open source docs</button>')"
return javascript
display.Javascript(open_all_button(["https://www.google.com","https://www.google.co.uk"]))
我有办法使用 IPython.display.Javascript
在单独的选项卡中同时打开多个源文档,以帮助简化错误分析工作流程。
# This opens all links in new tabs upon cell execution
def open_all(links):
# Set up onclick function
javascript = "\n".join(['window.open("{}");'.format(link) for link in links])
return javascript
js = open_all_dockets(links)
display(Javascript(js))
我真正想做的是能够将新标签页中这些链接的打开绑定到一个按钮。这将允许笔记本用户执行所有单元格,并且仍然控制通过单击 打开哪一组源文档。
问题是,只有当笔记本渲染到 HTML 时,这才有效。
# The button opens links in new tabs *only* once the notebook is rendered to HTML
def open_all_button(links):
# Set up onclick function
onclick = "function open() {\n"
onclick += "\n".join([" "*4 + 'window.open("{}");'.format(link) for link in links])
onclick += "}\n"
# Create button
button = "element.append('<button onclick={}>one click open source docs</button>')".format('"open()"')
# Assemble JS
javascript = onclick + button
return javascript
display(Javascript(open_all_button(links)))
我怎样才能让它在 运行 笔记本上工作?
谢谢。
我搞得一团糟,这似乎适用于实时笔记本和输出为 html。我猜单独定义 open()
函数会把事情搞砸,所以我们只是在按钮本身的 onclick
属性 中定义它。
# The button opens links in new tabs *only* once the notebook is rendered to HTML
import IPython.display as display
def open_all_button(links):
# Set up onclick function
onclick = "".join(['window.open("{}");'.format(link) for link in links])
# Create button
javascript = "element.append('<button onclick=" + onclick +">one click open source docs</button>')"
return javascript
display.Javascript(open_all_button(["https://www.google.com","https://www.google.co.uk"]))