SharePoint - JavaScript Variable & Functions

1. MSOWebPartPageFormName 获取当前form的名称,然后可用document.forms[MSOWebPartPageFormName]来得到当前form;

2. _spPageContextInfo ,此变量时object对象,可以使用JSON.stringify() 来展示其返回的值,含有以下信息:

{
"webServerRelativeUrl":"/sites/jacky",
"webAbsoluteUrl":"http://XXX/sites/jacky",
"siteAbsoluteUrl":"http://XXX/sites/jacky",
"serverRequestPath":"/sites/jacky/SitePages/PermissionViewer.aspx",
"layoutsUrl":"_layouts/15",
"webTitle":"SharePoint 2013",
"webTemplate":"1",
"tenantAppVersion":"2266722204",
"isAppWeb":false,
"webLogoUrl":"_layouts/15/images/siteicon.png",
"webLanguage":1033,
"currentLanguage":1033,
"currentUICultureName":"en-US",
"currentCultureName":"zh-CN",
"clientServerTimeDelta":-1657,
"siteClientTag":"198$$15.0.4779.1000",
"crossDomainPhotosEnabled":false,
"webUIVersion":15,
"webPermMasks":{
  "High":2147483647,
  "Low":4294967295
},
"pageListId":"{bd0a6e9b-f8b7-4bcf-9f6c-f75f0b6ac49d}",
"pageItemId":11,
"pagePersonalizationScope":1,
"userId":1,
"systemUserKey":"i:0).w|s-1-5-21-1614895754-484763869-682003330-234531",
"alertsEnabled":true,
"siteServerRelativeUrl":"/sites/jacky",
"allowSilverlightPrompt":"True"
}

使用时可以用类似 _spPageContextInfo.webServerRelativeUrl 的方式来获取数据;(注:_spPageContextInfo.userLoginName 只在SharePoint Online上可用)

如果要获取绝对路径,可以使用以下代码:

var url = window.location.protocol + "//" + window.location.host + _spPageContextInfo.siteServerRelativeUrl;

3. 得到当前site page的 page ID:
      var pageID = document.forms[MSOWebPartPageFormName].SPPageStateContext_PreviousAuthoringItemUser.value;

4. _spBodyOnLoadFunctionNames.push(“”);是将方法放在page load中执行,但最好不要用这个方式,因为它并不稳定,有时候不会起作用,最好还是用jquery的$(document).ready();

5. 在SharePoint中使用jQuery时,不要使用太新的版本,最好使用与Visual Studio中模板自带jQuery文件相近的版本,因为老版本的IE可能不支持最新的jQuery文件(比如在SharePoint 2010中使用jQuery 2.1.0,并用IE 10进行操作时,就不起作用,但Chrome可以)。

6. SharePoint提供的JS函数:http://www.cnblogs.com/awpatp/archive/2010/05/27/1745854.html

7. SharePoint 2013页面右上角的 Focus on Content 按钮实则是两个<a>标签,他们的ID, onclick事件非别是:

ctl00_fullscreenmodeBtn:
onclick="SetFullScreenMode(true);PreventDefaultNavigation();return false;"

ctl00_exitfullscreenmodeBtn:
onclick="SetFullScreenMode(false);PreventDefaultNavigation();return false;"

因此,如果想实现打开页面时,即可隐藏Global导航和Quick Launch区域,只关注内容,则可使用以下代码:

<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("setFullScreenOnLoad");

function setFullScreenOnLoad(){
SetFullScreenMode(true);
PreventDefaultNavigation();
}
</script>

8. SharePoint page load时添加操作,

  <script Language="JavaScript">
    _spBodyOnLoadFunctionNames.push("NewFunction");
    function NewFunction(){

      //add code here

    }

  </script>

9. 在SharePoint上引用jQuery文件时要使用绝对路径,不要使用相对路径(使用相对路径时,在不同页面有可能引用不到);

10. 在SharePoint中引用JavaScript文件,“/”就意味着当前站点的根目录,例如:http://host/sitepages/home.aspx中引用site assets中的文件,只需要src="/siteassets/jquery.js";如果站点路径是http://host/sites/test/sitepages/home.aspx中引用当前站点的javascript文件,需要写“/sites/test/siteassets/jquery.js”;

11. SharePoint 2010中添加 status bar的方法:

var statusId = SP.UI.Status.addStatus("Last Updated:",lastUpdatedItemsInfo);//lastUpdatedItemsInfo可以是文本,也可以是HTML代码;
SP.UI.Status.setStatusPriColor(statusId, "cobalt");

效果:

12. SPModalDialog 的使用方法:

//User Defined Function to Open Dialog Framework
function openDialog(strPageURL)
{
    var dialogOptions = SP.UI.$create_DialogOptions();
    dialogOptions.url = strPageURL;// URL of the Page
    //dialogOptions.width = 750; // Width of the Dialog
    //dialogOptions.height = 500; // Height of the Dialog

    SP.UI.ModalDialog.showModalDialog(dialogOptions); // Open the Dialog
    return false; //don't refresh page
}

13. SharePoint 数据库中的DateTime格式为:2015-12-08T00:00:00Z,因此使用CAML来进行日期时间查询时需要先更改为此格式(结尾的字母Z标识着这个时间是UTC时间);

14. 

 

posted @ 2014-03-20 11:15  Jacky Ge  阅读(444)  评论(0编辑  收藏  举报