Kam*_*ela 29 javascript sharepoint-2013
免责声明:我没有使用SharePoint2013的经验.
我有问题 - 我必须在整个页面加载后包含/触发一些javascript函数.我尝试监听DOMDocumentReady和window.load事件,但sharepoint在这些事件之后呈现页面的其余部分.
我的问题是:在呈现带有ajax的整个页面之后,我应该怎么做才能运行脚本.另外我注意到页面导航基于哈希(#)部分.显然我也必须发现那一刻.
任何帮助甚至链接到文档中的右页都会很棒!
小智 57
你是对的,在$(document).ready()之后页面上发生了很多事情.2013确实提供了一些选择.
1)脚本点播:(加载一个js文件,然后执行我的代码.)
function stuffThatRequiresSP_JS(){
//your code
}
Run Code Online (Sandbox Code Playgroud)
SP.SOD.executeFunc("sp.js")
2)延迟直到加载(等待js文件,然后运行)
function stuffToRunAfterSP_JS(){
//your code
}
ExecuteOrDelayUntilScriptLoaded(stuffToRunAfterSP_JS, "sp.js")
Run Code Online (Sandbox Code Playgroud)
3)其他东西完成后加载
function runAfterEverythingElse(){
// your code
}
_spBodyOnLoadFunctionNames.push("runAfterEverythingElse");
Run Code Online (Sandbox Code Playgroud)
资料来源:
executeFunc:http://msdn.microsoft.com/en-us/library/ff409592( v = office.14).aspx
ExecuteOrDelayUntilScriptLoaded:http://msdn.microsoft.com/en-us/library/ff411788( v = office.14).aspx
无法在_spBodyOnLoadFunctionNames上找到源代码,但我在一些地方使用它.
祝好运.
Jac*_* A. 12
形成文件的事件注册功能大致相当于的_spBodyOnLoadFunctionNames
是SP.SOD.executeOrDelayUntilEventNotified
.调用此方法以接收"sp.bodyloaded"事件的通知:
SP.SOD.executeOrDelayUntilEventNotified(function () {
// executed when SP load completes
}, "sp.bodyloaded");
Run Code Online (Sandbox Code Playgroud)
这个处理程序实际上在_spBodyOnLoadFunctionNames
函数之前稍微触发.
此引用适用于SharePoint 2010,但SOD实用程序存在于SharePoint 2013中:http://msdn.microsoft.com/en-us/library/office/ff410354(v = office.14).aspx
有一些不同的技术用于提供在SharePoint中的OnLoad事件之前/之后加载的自定义JavaScript代码:
ExecuteOrDelayUntilBodyLoaded.
Sys.Application.pageLoad.
document.ready Jquery.
_spBodyOnLoadFunctionNames.
_spBodyOnLoadFunction.
ExecuteOrDelayUntilScriptLoaded:sp.core.js.
SP.SOD.executeFunc: sp.js.
Sys.WebForms.PageRequestManager.PageLoaded
Run Code Online (Sandbox Code Playgroud)
- ExecuteOrDelayUntilBodyLoaded函数始终执行第一个(但在此阶段我们无法访问SP方法).这对于在OnLoad进程的早期阶段执行我们的自定义代码非常有用.
- 有两个SharePoint onLoad函数_spBodyOnLoadFunctionNames和_spBodyOnLoadFunction.始终按顺序执行.所以,如果我们想在_spBodyOnLoadFunctionNames中包含我们(或其他开发人员)的所有函数之后执行一些代码,那么使用这个函数是有用的_spBodyOnLoadFunction,因为它是在最后执行的.
- ExecuteOrDelayUntilScriptLoaded:sp.core.js和SP.SOD.executeFunc:sp.js. 以随机方式交换执行顺序.
- 如果我们想在所有函数(SP,加载函数,Yammer等)之后执行某些函数,我们可以使用此函数来附加OnLoad事件 - > Sys.WebForms.PageRequestManager.PageLoaded.
你可以在这里看到整篇文章解释每种类型,优点和缺点:https://blog.josequinto.com/2015/06/16/custom-javascript-function-loaded-after-the-ui-has-loaded-in -sharepoint-2013 /
问候!
归档时间: |
|
查看次数: |
91730 次 |
最近记录: |