我的网站会动态生成一些内容,因此在加载插件后,我必须以某种方式再次启动 highlight.js 插件。
以下代码用于启动语法高亮:
hljs.initHighlightingOnLoad();
我尝试像这样做:hljs.initHighlighting();
以再次实现此操作,但它不起作用。
我的网站会动态生成一些内容,因此在加载插件后,我必须以某种方式再次启动 highlight.js 插件。
以下代码用于启动语法高亮:
hljs.initHighlightingOnLoad();
我尝试像这样做:hljs.initHighlighting();
以再次实现此操作,但它不起作用。
您必须首先将“called”设置为false:
hljs.initHighlighting.called = false;
hljs.initHighlighting();
initHighlightingOnLoad()
的作用吗? - JackHasaKeyboard$(document).ready(function() {
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
$(document).ready(function() {
$('#myBlock').each(function(i, e) {hljs.highlightBlock(e)});
});
希望这能解决你的问题.. 你需要使用
hljs.highlightAll()
自从10.6版本以后,hljs.initHighlightingOnLoad()已经被弃用。
如果你正在使用React,你可以在componentDidMount中应用它。
useEffect(() => {
hljs.highlightAll()
}, []);
或者,如果使用另一个框架,请在页面加载时调用该函数。 更多信息:https://highlightjs.readthedocs.io/en/latest/api.html
innerHtml
设置为true。import Highlight from "react-highlight"
import "highlight.js/styles/gradient-dark.css"; // import style on the root file
import JSONViewer from "./JSONViewer"
<Highlight innerHTML className="w-full">
<JSONViewer content={yourContentHere} />
</Highlight>
警告:如果将innerHTML设置为true,请确保生成的HTML来自可信源。
使用`hljs.registerLanguage("json", json);`或`hljs.initHighlightingOnLoad();`会在重新渲染React时出现问题。使用依赖项时不会重新调用,但是像这样没有依赖项的`useEffect`可以正常工作。
useEffect(() => {
hljs.initHighlightingOnLoad(); // it works, but bad for performance because will call every single time re-rendering.
})
useEffect(() => {
hljs.initHighlightingOnLoad(); // it doesn't works
}, [])