gpt4 book ai didi

javascript - 如何使用在浏览器中正确呈现的混合内部和外部 HTML 内容替换内部 HTML 内容

转载 作者:行者123 更新时间:2023-12-03 02:39:09 25 4
gpt4 key购买 nike

我的问题涉及以下 Javascript,它包含在 HTML 文档正文之后:

   <script language="javascript">
function walkText(node) {
if (node.nodeType == 3) {
node.data = node.data.replace(/Blah Blah Blah/gi, "<span style=\"font-family: elektora;\">a<span style=\"font-size: 80%\">shen</span> g<span style=\"font-size: 80%\">low</span> g<span style=\"font-size: 80%\">aming</span></span>");
}
if (node.nodeType == 1 && node.nodeName != "SCRIPT") {
for (var i = 0; i < node.childNodes.length; i++) {
walkText(node.childNodes[i]);
}
}
}
walkText(document.body);
</script>

请注意,替换文本包含内部和外部 HTML 内容的混合,并且不会在浏览器中相应地呈现。它以原始未处理的 HTML 形式输出 - <span style=\"font-family: elektora;\">a<span style=\"font-size: 80%\">shen</span> g<span style=\"font-size: 80%\">low</span> g<span style=\"font-size: 80%\">aming</span></span> - 在浏览器中。

如何修改查找和替换代码以在浏览器中以这种方式进行替换,以便将其视为混合的内部和外部 HTML 内容。目前,它用另一个文本字符串替换原始文本字符串,该文本字符串的 HTML 标签不会在浏览器中呈现。

最佳答案

问题的原因是您正在替换文本节点。所以字符串没有渲染。尝试以下代码块

function walkText(node) {
let replacedText = "<span style='font-family: elektora;'>a<span style='font-size: 80%'>shen</span> g<span style='font-size: 80%'>low</span> g<span style='font-size: 80%'>aming</span></span>";
let pattern = /hhh/gi;

if (node.nodeType == 1 && node.nodeName != "SCRIPT") {

let indx = node.innerHTML.search(pattern, replacedText);
if (indx != -1)
{
node.innerHTML = node.innerHTML.replace(pattern, replacedText);
}
else
{
for (var i = 0; i < node.childNodes.length; i++) {
walkText(node.childNodes[i]);
}
}
}
}
walkText(document.body);

关于javascript - 如何使用在浏览器中正确呈现的混合内部和外部 HTML 内容替换内部 HTML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48403714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com