当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用在JavaScript的RequestHelper

ASP.NET
灵活正确的实现.NET插件机制
在Asp.net中为图像加入版权信息
重构Session确实让代码简洁干净了不少
JSP与ASP.Net之间的Session值共享
如何获取当前程序文件的路径 Current Path
在.NET框架应用程序中发送电子邮件
asp.net开发wap程序必备:识别来访手机品牌型号
ASP.NET 2.0中使用自定义provider
asp.net开发wap必备:更好的匹配手机设备
用ashx动态生成文件
ASP.NET中17种正则表达式
提高ASP.Net应用程序性能的十大方法
一个通过web.Mail发送邮件的类
在DataGrid里面根据日期的不同显示new图标
Asp.Net细节性问题精萃
自定义控件中使用枚举类型的属性(原创)
.NET开发 正则表达式中的 Bug
.Net学习:IronPython分析Lambda表达式
ASP.NET中的Response对象的方法
在ASP.NET 2.0中数据绑定的实现方法

ASP.NET 中的 用在JavaScript的RequestHelper


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 84 ::
收藏到网摘: n/a

    碰到一个小小的需求,就是要根据传入的锚(也就是url中#后面的东西啦)来显示不同的内容,记得以前写了的,不知道被我丢到哪去了,又要重新写一个,顺便把功能整理加强了一些,加入了取QueryString和Cookie的东西,老习惯,贴代码. 
 
以下为引用的内容:
  RequestHelper.js
  //功能 : 在javascript中提供QueryString/Cookie/Anchor的访问.
  /*使用 :
  var Request = new RequestHelper();
  var s = Request.QueryString["id"]; //取得url中的id参数.
  var c = Request.Cookies["name"]; //取得id为name的cookie值.
  var a = Request.Anchor; //取得url中定位的锚点名称.
  */
  //更新 : 2008-05-31
  RequestHelper.prototype.GetParams = function()
  {
   var result = {};
   var loc = document.location.toString();
   if(loc.indexOf("?") > -1)
   {
   var l = loc.lastIndexOf("#") > -1 ? loc.lastIndexOf("#") : loc.length;
   var param_str = loc.substring(loc.indexOf("?")+1, l);
   var params = param_str.split("&");
   for(var x = 0; x < params.length; x++)
   {
   params[x] = params[x].split("=");
   result[params[x][0]] = params[x][1];
   }
   }
   return result;
  }
  RequestHelper.prototype.GetCookies = function()
  {
   var result = {};
   var cookie = document.cookie;
   if(cookie.length > 0)
   {
   var reg = /(^[a-zA-z0-9]+?|; [a-zA-z0-9]+?)=/g;
   var c = cookie.match(reg);
   if(c)
   {
   var n = 0;
   for(var x = 0; x < c.length; x++)
   {
   n = (x < c.length - 1) ? cookie.indexOf(c[x + 1].toString()) : cookie.length;
   var s = cookie.substring(cookie.indexOf(c[x].toString()),n);
   s = s.split("=");
   s[0] = s[0].replace(/^; / , "");
   result[s[0]] = s[1];
   }
   }
   }
   return result;
  }
  
  RequestHelper.prototype.GetAnchor = function()
  {
   var Anchor;
   var loc = document.location.toString()
   if(loc.lastIndexOf("#") > -1)
   {
   Anchor = loc.substring(loc.lastIndexOf("#")+1);
   }
   return Anchor;
  }
  
  function RequestHelper()
  {
   this.QueryString = this.GetParams();
   this.Cookies = this.GetCookies();
   this.Anchor = this.GetAnchor();
  }
  
因cookie的名称不支持某些特殊符号,所以只取了数字和字母。