zoukankan      html  css  js  c++  java
  • js javascript 获取url,获得当前页面的url,静态html文件js读取url参数

    获得当前页面的url 

    Html代码  收藏代码
    1. window.location.href


    静态html文件js读取url参数 

    Html代码  收藏代码
    1. location.search; //获取url中"?"符后的字串  


    下边为转载的相应的技术 

    在ajax应用流行时,有时我们可能为了降低服务器的负担,把动态内容生成静态html页面或者是xml文件,供客户端访问!但是在我们的网站或系统中往住页面中某些部分是在后台没有进行修改时,其内容不会发生变化的。但是页面中也往往有部分内容是动态的更新的,比如一个新闻页面,新闻内容往往生成了之后就是静态的,但是新闻的最新评论往往是变化的,在这个时候有几种解决方案: 

    1、重新生成该静态页面,优点是用户访问时页面上的肉容可以实现全静态,不与服务器程序及数据库后端打交道!缺点是每次用户对页面任何部分更新都必须重新生成。 

    2、js调用请求动态内容,优点是静态页面只生成一次,动态部分才动态加载,却点是服务器端要用输出一段js代码并用js代码输出网页内容,也不利于搜索引擎收录。 

    3、ajax调用动态内容,和js基本相似,只是与服务器交互的方式不同!并且页面显示不会受到因动态调用速度慢而影响整个页面的加载速度!至于ajax不利于搜索收录,当然在《ajax in acation》等相关书籍中也介绍有变向的解决方案! 

    4、在服务器端ssl动态内容,用服务器端优化及缓存解决是时下最流行的方法! 

    对于第二种和第三种方法都是我最青睐的静态解决方法,适合以内容为主的中小型网站。那么在有时候可能会有js读取url参数的需求,事实证明的确也有很多时候有这种需求,特别是在胖客户端的情况下!以前也写过这样的代码,其实原理很简单就是利用javascript接口提供location对像得到url 地址,然后通过分析url以取得参数,以下是我收录的一些优秀的url参数读取代码: 

    一、字符串分割分析法。 
    这里是一个获取URL+?带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET 
    函数: 

    Html代码  收藏代码
    1. <script>  
    2. function GetRequest()  
    3. {  
    4. var url = location.search; //获取url中"?"符后的字串  
    5. var theRequest = new Object();  
    6. if(url.indexOf("?") != -1)  
    7. {  
    8.   var str = url.substr(1);  
    9.     strstrs = str.split("&");  
    10.   for(var i = 0; i < strs.length; i ++)  
    11.     {  
    12.      theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);  
    13.     }  
    14. }  
    15. return theRequest;  
    16. }  
    17. </script>  


    然后我们通过调用此函数获取对应参数值: 

    Html代码  收藏代码
    1. <script>  
    2. var Request=new Object();  
    3. Request=GetRequest();  
    4. var 参数1,参数2,参数3,参数N;  
    5. 参数1=Request['参数1'];  
    6. 参数2=Request['参数2'];  
    7. 参数3=Request['参数3'];  
    8. 参数N=Request['参数N'];  
    9. </script>  



    以此获取url串中所带的同名参数 

    二、正则分析法。 

    Html代码  收藏代码
    1. function     GetQueryString(name)     
    2. {     
    3.      var     reg     =   new   RegExp("(^|&)"+     name     +"=([^&]*)(&|$)");     
    4.      var     r     =     window.location.search.substr(1).match(reg);     
    5.      if     (r!=null)   return     unescape(r[2]);   return   null;     
    6. }     
    7. alert(GetQueryString("参数名1"));     
    8. alert(GetQueryString("参数名2"));     
    9. alert(GetQueryString("参数名3"));  


    黑色头发:http://heisetoufa.iteye.com/

  • 相关阅读:
    每天一个linux命令(21):chgrp,chown,chmod
    设计模式之单例模式
    每天一个linux命令(20):find命令之exec
    每天一个linux命令(19):find 命令概览
    每天一个linux命令(18):locate 命令
    每天一个linux命令(17):whereis 命令
    【6折抢】戴尔i7新品Latitude高性能商用本
    Spring Cloud Gateway VS Zuul 比较,怎么选择?
    Zookeeper怎么实现分布式锁?
    数据库怎么分库分表,垂直?水平?
  • 原文地址:https://www.cnblogs.com/yangkai-cn/p/4017267.html
Copyright © 2011-2022 走看看