【问题标题】:Prettify prettyPrint() function not loading inside <script> tagPrettify prettyPrint() 函数未加载到 <script> 标记内
【发布时间】:2016-08-13 14:34:30
【问题描述】:

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

要初始化脚本,可以这样调用它:&lt;body onload="prettyPrint();"&gt; 可以正常工作。

我不想将此属性添加到我页面的所有&lt;body&gt; 标记中,而是想从&lt;body&gt; 内的&lt;script&gt; 标记中调用它,(原因有点长解释) .但这不起作用。

代码如下:

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

代码 sn-p 没有像我通过 &lt;body onload="prettyPrint();"&gt; 调用函数时那样突出显示,但 JavaScript 控制台上没有错误,并且行 'doing something' 正在打印。

如何从&lt;script&gt; 标签调用这个函数?

编辑

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

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

【问题讨论】:

    标签: prettify google-code-prettify


    【解决方案1】:

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

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

    【讨论】:

    • 它只能漂亮地打印已经处理过的内容。正文开始处的脚本标记在处理任何正文内容之前运行。
    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2018-09-20
    • 2011-11-27
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多