我有大量的Jupyter笔记本,在许多笔记本中,我都有指向本地存储的pdf文档的超链接。不久前,这些链接在我的Chrome中的iMac上不再起作用。单击链接时,将打开一个新标签,其中包含正确的地址,但页面仅为黑色。当我使用完全相同的Jupyter笔记本在MacBook上执行此操作时,它可以正常工作。我的MacBook和iMac的环境基本相同。一切都是最新的。我正在将Anaconda用于Python和Jupyter。
当在iMac上发生此问题时,在Chrome中查看控制台时,出现以下错误消息: 无法加载“ http://localhost:8888/files/Cookbooks/Git%20%26%20GitHub/books/Pro_Git.pdf”作为插件,因为插件要加载到的框架已被沙箱化。
当我在Safari或Firefox上打开Jupyter笔记本时,超链接工作正常。 Chrome是我的默认浏览器,我希望对此进行修复。我不是很熟练,也无法在互联网上找到任何解决方案。帮助将不胜感激。
答案 0 :(得分:1)
一个简单的解决方法是使用<embed>
元素而不是<iframe>
。
您可以在笔记本中定义一个助手功能:
from IPython.core.display import HTML
def pdf(url):
return HTML('<embed src="%s" type="application/pdf" width="100%%" height="600px" />' % url)
要显示您的PDF,请使用以下内容:
pdf('./data-ref/pluto_datadictionary.pdf')
注意:pdf文件应存储在您的jupyter笔记本旁边
最初的iframe问题与Chrome应用于iframe的Content Security Policy有关。