You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyScript中使用py-script标签能否动态更新innerHTML属性?

解决PyScript中设置innerHTML时HTML被剥离的问题

问题重现

你在py-repl中执行DOM操作能正常渲染HTML格式内容,但将相同代码放入py-script标签后,HTML标记被自动剥离,仅显示纯文本内容。

解决方案

不要直接通过JS的document对象操作DOM,改用PyScript官方封装的Element类来处理:

方法1:使用Element的innerHTML属性

<div id="charts">This is a <b>Test</b>.</div>
<py-script>
    from pyscript import Element
    Element("charts").innerHTML = "This is <i>another</i> test."
</py-script>

方法2:使用write方法并允许HTML渲染

<div id="charts">This is a <b>Test</b>.</div>
<py-script>
    from pyscript import Element
    Element("charts").write("This is <i>another</i> test.", unsafe_allow_html=True)
</py-script>

原因说明

在py-script块中直接通过js.document操作DOM元素的innerHTML时,Pyodide的Python-JS桥接机制会自动转义HTML特殊字符,导致标记被当成纯文本处理。而PyScript封装的Element类专门优化了DOM交互逻辑,能正确识别并渲染HTML内容;write方法默认以纯文本模式写入内容,因此需要显式开启unsafe_allow_html=True参数来允许HTML解析渲染。

内容的提问来源于stack exchange,提问作者Paul Barry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:35:19