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

ASP.NET
Java、C#泛型的一些个人看法
用JScript.net写.net应用程序
.Net Remoting实现定向广播
ASP.NET 与 Ajax 的实现方式
在.NET环境下绘制模糊数学中隶属函数分布图
.Net UCS2 加码最简单的方法
在VS2005中创建并使用MasterPage
无废话C#设计模式之十三:Decorator
用 C# 编程实现读写Binary
无废话C#设计模式之十二:Bridge
无废话C#设计模式之十一:Composite
ASP.NET连接Access和SQL Server数据库
.NET和J2EE该相互学习什么
ASP.NET 2.0功能扩展:跨页提交
巧用escape解决ASP.NET中URL传参乱码问题
理解ASP.NET中的三层结构
解读ADO.NET2.0的十大最新特性
ASP.NET教程:抽象工厂模式
ASP.NET教程:抽象类和接口的比较
C#实现USB接口的程序代码

ASP.NET 中的 用在JavaScript的RequestHelper


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 171 ::
收藏到网摘: 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的名称不支持某些特殊符号,所以只取了数字和字母。