gpt4 book ai didi

javascript - 如何在 Sharepoint 2013 博客 (Office365) 上使用 SyntaxHighlighter?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:52 25 4
gpt4 key购买 nike

我正在尝试使用 SyntaxHighlighter 允许代码高亮显示在 Sharepoint 2013 博客网站(office365 门户)上。

这是我放在母版页头部的代码(之前加载了js和css资源):

<script type="text/javascript">
function sh(){
SyntaxHighlighter.highlight();
};

// executed when SP load completes
_spBodyOnLoadFunctionNames.push("sh");
</script>

_spBodyOnLoadFunctionNames 应该提供一种在load 页面事件之后运行函数的机制,但它似乎从未执行过。从开发人员工具(控制台)运行我的 sh 函数按预期工作。

有没有人知道我是否使用了正确的事件?

最佳答案

_spBodyOnLoadFunctionNamesinit.js 中声明的数组(它是 SharePoint JavaScript 库的一部分)

根据init.js:

AttachEvent("DOMContentLoaded", _spBodyOnLoadWrapper, document);
window.onload = _spBodyOnLoadWrapper;

在哪里

function _spBodyOnLoadWrapper() {
ExecuteOrDelayUntilScriptLoaded(ProcessDefaultOnLoad, "core.js");
//the remaining code is omitted for clarity..
}


function ProcessDefaultOnLoad() {
ProcessOnLoadFunctionNames(_spBodyOnLoadFunctionNames);
//the remaining code is omitted for clarity..
}
function ProcessOnLoadFunctionNames(onLoadFunctionNames) {
if (onLoadFunctionNames != null) {
for (var i = 0; i < onLoadFunctionNames.length; i++) {
var expr = "if(typeof(" + onLoadFunctionNames[i] + ")=='function'){" + onLoadFunctionNames[i] + "();}";

eval(expr);
}
onLoadFunctionNames = [];
}
}

总而言之,指定的方法是一种适当的机制,可在加载页面事件后运行函数。

事实上它对我来说很好(见下图)

确保 init.js 库在 _spBodyOnLoadFunctionNames 初始化之前加载。

或者您可以尝试以下方法:

<script type="text/javascript">
function sh(){
SyntaxHighlighter.highlight();
};

ExecuteOrDelayUntilScriptLoaded(sh, "core.js");
</script>

结果

enter image description here

关于javascript - 如何在 Sharepoint 2013 博客 (Office365) 上使用 SyntaxHighlighter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361648/

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