在sharepoint中有许多预定义的javaScript文件,在这些js文件中时不时的遇到脚本错误。要修复这些脚本错误说简单也简单(直接更改14/12目录下方的文件即可),但是重装或者更新之后呢?问题随之又来了。
在此我们需要重新对这些方法或者变量做一个Hook(在脚本执行前,使用js重写出错的那部分逻辑),然后修正其执行我们定义的脚本即可。在本文中,笔者遇到这样的错误。sp.ui.rte中一个方法(RTE.Range.ParentElement中 moveToElementText)报错 。而这个方法在页面加载完成后就被调用,使得在Document的onLoad事件中无法对这个函数做Hook。我们需要在这个脚本加载之后就执行我们定义的脚本,通过查找SDK找到如下方法适合做这样的事情。
方法:
SP.SOD.executeOrDelayUntilScriptLoaded(func, depScriptFileName)
参数:
func:需要执行的函数(脚本用函数封装起来)。
depScriptFileName:等待的脚本文件。
如下:
在 jquery.1.3.2.min.js加载完成后执行function中的脚本
SP.SOD.executeOrDelayUntilScriptLoaded(function(){
//to do something
},"jquery.1.3.2.min.js");