每次我用 python 創建一個大葉地圖時,它都會保存,但會洗掉我編碼到 map.html 檔案的所有 JavaScript 代碼。我怎么能阻止這個?我希望我自己的 JavaScript 進入大葉地圖。
干杯:)
uj5u.com熱心網友回復:
檔案顯示在燒瓶中使用 folium,您可以在那里看到功能._repr_html_()
此功能提供HTML您可以自己放入HTML并保存在檔案中的所有內容。
import folium
m = folium.Map(location=[45.5236, -122.6750])
folium_html = m._repr_html_()
html = f"""
<!DOCTYPE html>
<html>
<body>
<h1>STACKOVERFLOW EXAMPLE</h1>
{folium_html}
<script>alert('My JavaScript Code');</script>
</body>
</html>
"""
with open('map.html', 'w') as fh:
fh.write(html)
編輯:
我發現,m._repr_html_()用于生成iframe的Jupyter,但原來的save()用途m.get_root().render()得到充分的HTML。但也有其他函式來得到separatelly零件head,body,script(它render()用來生成完整的HTML),它可以用來生成自己的HTML。
import folium
m = folium.Map(location=[45.5236, -122.6750])
root = m.get_root()
#print(root.render()) # used by `save()`
folium_head = root.header.render()
folium_body = root.html.render()
folium_script = root.script.render()
html = f"""
<!DOCTYPE html>
<html>
<head>
{folium_head}
</head>
<body>
<h1>STACKOVERFLOW EXAMPLE</h1>
{folium_body}
<script>
{folium_script}
alert('My JavaScript Code');
</script>
</body>
</html>
"""
with open('map.html', 'w') as fh:
fh.write(html)
編輯:
似乎您也可以將元素添加到由 save()
import folium
m = folium.Map(location=[45.5236, -122.6750])
root = m.get_root()
# add to `<head>` before folium elements
#root.header.add_child(folium.Element("<style> ... </style>"))
# add to `<body>` before folium elements
root.html.add_child(folium.Element("<h1>STACKOVERFLOW EXAMPLE</h1>"))
# add to `<script>` before folium elements
#root.script.add_child(folium.Element("alert('My JavaScript Code');"))
# add folium elements
#root.render() # used by `save()`
m.render() # used by `save()`
# add to `<head>` after folium elements
#root.header.add_child(folium.Element("<style> ... </style>"))
# add to `<body>` after folium elements
#root.html.add_child(folium.Element("<h1>STACKOVERFLOW EXAMPLE</h1>"))
# add to `<script>` after folium elements
root.script.add_child(folium.Element("alert('My JavaScript Code');"))
m.save('test.html')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/381101.html
標籤:javascript Python html
下一篇:React:將狀態傳遞給子組件
