You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从GitHub获取的代码无法语法高亮,如何正确使用code与pre标签?

解决从GitHub获取代码的语法高亮问题

问题出在执行时机:hljs.highlightAll()在页面加载完成就运行了,但通过fetch拉取代码并插入DOM的操作是异步的,此时目标<code>标签还没有内容,所以highlight.js没法对它进行高亮处理。而本地写死的代码在页面加载时就存在,因此能被正常识别高亮。

解决方法很简单,在异步获取代码并插入DOM之后,手动调用高亮方法处理目标元素:

修改后的JavaScript代码

fetch("https://raw.githubusercontent.com/Ayanmullick/test/master/AutomationAcc/test1.ps1")
  .then(response => response.text())
  .then(data => {
    const codeElement = document.getElementById('code');
    codeElement.textContent = data;
    // 手动调用高亮方法处理当前元素
    hljs.highlightElement(codeElement);
  })

对应的HTML代码

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/atom-one-dark-reasonable.min.css">
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/languages/powershell.min.js"></script>

<pre>
<code class="pwsh" id="code"> </code> 
</pre>

这样修改后,当代码成功从GitHub获取并插入到<code>标签里,就会立刻触发高亮处理,实现和本地代码一样的语法高亮效果。

内容的提问来源于stack exchange,提问作者Ayan Mullick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:25:22