首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyscript中的HTML输出

Pyscript中的HTML输出
EN

Stack Overflow用户
提问于 2022-05-11 08:30:17
回答 1查看 1.4K关注 0票数 1

我正在用Pyscript做实验,我试着打印一个HTML表,但是它没有工作。它似乎删除了标签,并且只删除了纯文本。

为什么会这样呢?我试着在网上搜索,但作为一种新技术,我没有找到多少。

这是我的密码:

代码语言:javascript
复制
<py-script>
print("<table>")
for i in range (2):
    print("<tr>")
    for j in range (2):
        print("<td>test</td>")
    print("</tr>")
print("</table>")
</py-script>

这是我得到的输出:

我试图将print()方法替换为pyscript.write()方法,但它也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 09:23:00

我挖掘源代码pyscript.py,此时我只使用类似于JavaScript的代码。

例如,这会添加<h1>Hello</h1>

代码语言:javascript
复制
<div id="output"></div>

<py-script>

element = document.createElement('h1')
element.innerText = "Hello"
document.getElementById("output").append(element)

</py-script>

全工作代码

代码语言:javascript
复制
<!DOCTYPE html>

<html>

<head>
  <meta charset="utf-8">
  <title>PyScript Demo</title>
  <!--<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />-->
  <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>

<body>

<div id="output"></div>

<py-script>

element = document.createElement('h1')
element.innerText = "Hello"
document.getElementById("output").append(element)

</py-script>

</body>
</html>

编辑:

在深入研究源代码之后,我发现pyscript.js运行函数htmlDecode(),它从<py-script>中的代码中删除所有标记(可能还会在从文件加载代码时删除标记),这就产生了问题。

参见Pyscript问题:[BUG] print()不输出HTML标记。*问题#347·pyscript/pyscript

一些解决办法是使用一些替代方法。{{ }},而不是代码中的< > --然后使用代码将其替换回< >

代码语言:javascript
复制
print( "{{h1}}Hello{{/h1}}".replace("{{", "<").replace("}}", ">") )

或者更通用的函数。

代码语言:javascript
复制
def HTML(text):
    return text.replace("{{", "<").replace("}}", ">")

print( HTML("{{h1}}Hello{{/h1}}") )

pyscript.write(some_id, HTML("{{h1}}Hello{{/h1}}") )

document.getElementById(some_id).innerHTML = HTML("{{h1}}Hello{{/h1}}")

有时问题也可能是pyscript.css,它重新定义了一些项和例如。<h1>看起来像普通文本。

一个解决方案是删除pyscript.css

其他解决方案是使用来自pyscript.css的类,如在实例/index.html中。

代码语言:javascript
复制
<h1 class="text-4xl font-bold">Hello World</h1>

这意味着

代码语言:javascript
复制
print( HTML('{{h1 class="text-4xl font-bold"}}Hello{{/h1}}') )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72197815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档