使用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;
            }
        }
    };



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值