gpt4 book ai didi

javascript - 如何在加载 run_prettify.js 后重新应用 prettyPrint

转载 作者:搜寻专家 更新时间:2023-11-01 05:05:59 24 4
gpt4 key购买 nike

我正在尝试使用 Javascript 代码美化器,并提出一个问题。

如果我不分配 class="prettyprint"<pre>在静态 html 中,但希望稍后应用 prettyprint(例如,当用户点击我网页上的“着色”按钮时),我该如何实现?

稍微修改一下原来的 run_prettify.js 或 prettify.js 是可以接受的,因为我要把它放到离线使用。

我的实验:

编写 try-delay-class.html:

<html>
<head>
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
</head>
See it:
<pre>
class Voila {
public:
// Voila
static const string VOILA = "Voila";

// will not interfere with embedded <a href="#voila1">tags</a>.
}
</pre>
</html>

在 Chrome v26 中打开,调出控制台,执行:

pres=document.getElementsByTagName('pre')
pres[0].className+=" prettyprint"

语法颜色不出现。

enter image description here

最佳答案

根据此处的评论,How to get prettyprint to work on dynamically generated dom element ,我找到了出路。只需调用:

PR.prettyPrint()

顺便说一句:如果你想删除代码颜色突出显示,你不能简单地将 pre 的类设置为空,然后是 PR.prettyPrint()再次。 PR.prettyPrint()只能附加颜色标签,不能移除它们。一种可行的方法是保存您的原始 <pre>应用 prettyprint 之前的内容,然后恢复 <pre>稍后的内容。在我的帖子中验证 jQuery, how to clone back saved elements? .

enter image description here

关于javascript - 如何在加载 run_prettify.js 后重新应用 prettyPrint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127015/

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