我才剛剛開始使用 Pyscript,我正在嘗試使用它在運行時動態更新我頁面上的一些 HTML 標記。(我很少用 Javascript 編程,所以在撰寫 DOM 等方面我的知識有很多空白)。
如果我從這個標記開始:
<div id="charts">This is a <b>Test</b>.</div>
<py-repl>
</py-repl>
我可以在 py-repl 提示符中鍵入接下來的三行代碼,使用 innerHTML 屬性調整 div 標記內的標記,即時更新頁面,如下所示:
from js import document
c = document.getElementById('charts')
c.innerHTML = "This is <i>another</i> test."
果然,新的 innerHTML 標記取代了舊的標記,頁面更新,一切都很好(“另一個”這個詞用斜體顯示)。這正是我所期望的。
但是,當我在 py-script 標記中使用相同的代碼時,如下所示:
<div id="charts">This is a <b>Test</b>.</div>
<py-script>
from js import document
c = document.getElementById('charts')
c.innerHTML = "This is <i>another</i> test."
</py-script>
標記替換為字串“這是另一個測驗。”。HTML 標記被剝離,就好像我使用了innerTEXT 而不是innerHTML。該頁面確實更新了,但是由于缺少斜體標記,我沒有看到呈現的標記,只有文本內容。
我究竟做錯了什么?
非常感謝任何幫助/指標。
uj5u.com熱心網友回復:
PyScript 從字串中洗掉 HTML 標記。要嵌入 HTML,一種選擇是像這樣構建 DOM 元素:
<py-script>
from js import document
c = document.getElementById('charts')
c.innerHTML = ""
e = document.createTextNode("This is ")
c.appendChild(e)
e = document.createElement("i")
e.innerHTML = "another"
c.appendChild(e)
e = document.createTextNode(" test.")
c.appendChild(e)
</py-script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/510223.html
