美化 prettyPrint() 函数未在 <script> 标记内加载

Prettify prettyPrint() function not loading inside <script> tag

我正在使用 Google prettify.js 和 prettify.css 文件自行托管它们。这是一个 javascript 和 css 脚本,突出显示 <pre><code> 标签内的源代码片段。文档可以在这里找到:https://github.com/google/code-prettify/blob/master/docs/getting_started.md

要初始化脚本,可以这样调用:<body onload="prettyPrint();"> 效果很好。

我不想将此属性添加到我页面的所有 <body> 标签,而是想从 <body> 内的 <script> 标签调用它,(原因有点长)。但这是行不通的。

代码如下:

<body>
    <script type="text/javascript">
        prettyPrint();
        //document.write('doing something');//this line prints
    </script>
    ...

代码片段没有像我通过 <body onload="prettyPrint();"> 调用函数时那样突出显示,但是 JavaScript 控制台上没有错误,并且正在打印行 'doing something' .

如何从 <script> 标签中调用这个函数?

编辑

即使这正在打印,但语法仍然没有突出显示:

<body>
    <script type="text/javascript">
        if(window.prettyPrint){
            prettyPrint();
            document.write('doing something');//this line prints
        }
    </script>
    ...

所以,它必须使用 object.onload 来调用我真的不知道为什么我只是尝试了很多东西并且这有效。其实还是很有道理的。

    <body>
        <script>
            window.onload=function(){prettyPrint();};
        </script>
        ...