使用JSRequest读取URL中的信息
JSRequest是SharePoint提供的一个客户端对象,是在init.js这个文件中定义的(文件位于C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ 文件夹中),使用这个对象可以用来方便的读取URL中的信息,因为这个对象提供了三个属性:
1.JSRequest.FileName
2.JSRequest.PathName
3.JSRequest.QueryString["Param"]
在使用JSRequest之前,需要首先使用以下代码进行初始化:
- JSRequest.EnsureSetup();
在初始化之后就可以使用上面的三个属性了,例如对于一个名字为Product的list,新建一个item的页面(NewForm.aspx)的URL是:
- http://server2013/Lists/Product/NewForm.aspx?Source=http%2A%2F%2Fserver2013%2FLists%2FProduct%2FAllItems%2Easpx&RootFolder=
第一个属性JSRequest.FileName用来读取URL中的页面的名字,对于这个Url,页面的名字为NewForm.aspx。
第二个属性JSRequest.PathName用来读取URL中的页面路径,对于这个URL,路径为/Lists/Product/NewForm.aspx。
第三个属性JSRequest.QueryString用来获取URL中的参数,例如URL中的Source参数值可以使用JSRequest.QueryString["Source"]来获取,以下是在这个页面上执行的结果(Chrome浏览器):
以下是这个对象的代码,来自于init.js,还是很简单的,可以看到JSRequest使用EnsureSetup方法分析URL,来获取这三个属性的值。
- JSRequest = {
- QueryString: null,
- FileName: null,
- PathName: null,
- EnsureSetup: function() {
- if (JSRequest.QueryString != null)
- return;
- JSRequest.QueryString = [];
- var queryString = (ajaxNavigate.get_search()).substring(1);
- var pairs = queryString.split("&");
- var p;
- for (var i = 0; i < pairs.length; i++) {
- var pair = pairs[i];
- p = pair.indexOf("=");
- if (p > -1) {
- var key = pair.substring(0, p);
- var value = pair.substring(p + 1);
- JSRequest.QueryString[key] = value;
- }
- }
- var path = JSRequest.PathName = window.location.pathname;
- p = path.lastIndexOf("/");
- if (p > -1) {
- JSRequest.FileName = path.substring(p + 1);
- }
- else {
- JSRequest.PageName = path;
- }
- }
- };
浙公网安备 33010602011771号