**已关闭。**此问题为not reproducible or was caused by typos。它目前不接受回答。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
12天前关闭。
Improve this question
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
foreignObject.appendChild(document.createElement('script'))
svg.appendChild(foreignObject);
new XMLSerializer().serializeToString(svg)
// "<svg xmlns=\"http://www.w3.org/2000/svg\"><foreignObject><script xmlns=\"http://www.w3.org/1999/xhtml\"></script></foreignObject></svg>"
代码字符串<script>
变成\x3Cscript>
,</script>
变成\x3C/script>
,结果不对,我怎么能解决这个问题?
游猎也很好
safari的
chrome的
use createElemetNS for all elemtes的
this is strange in chrome
this is strange in chrome 2
2条答案
按热度按时间0ve6wy6x1#
您没有问题,这只是Chrome向您显示信息的方式。
请注意,在您的屏幕截图中,输出是如何被
'
字符包围的。这是因为Chrome通过将其呈现为字符串字面量来告诉您该值是字符串。
在字符串中,
\x3C
表示<
。转义字符的使用是为了使它可以被复制/粘贴到HTML
<script>
元素中,而不会使字符串文字中的序列</script>
过早地触发HTML脚本元素的结束。您可以通过将最后一行替换为:
字符串
lokaqttq2#
输出构建的SVG
字符串
型