收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1856|回复: 3

[求助] JS 小白咨询个问题。

[复制链接]
发表于 2014-8-18 11:12:50 | 显示全部楼层 |阅读模式
<script>
function request(paras){
var url = location.href;
var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");
var paraObj = {}
for (i=0; j=paraString[i]; i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf
("=")+1,j.length);
}
var returnValue = paraObj[paras.toLowerCase()];
if(typeof(returnValue)=="undefined"){
return "";
}else{
return returnValue;
}
}
var theurl
theurl=request("url");
if (theurl!=''){
location=theurl
}
</script>

JS小白想咨询一下,怎样修改上面这段代码。
这个代码在go.html里,现在通过go.html?url=http://www.baidu.com/可以跳转到http://www.baidu.com
我想修改成访问 go.html?url=百度 然后跳转到 http://www.baidu.com/s?wd=百度
谢谢。
发表于 2014-8-18 17:44:45 | 显示全部楼层
你最后的地址不清不楚的,既有中文又有英文
看他的代码是解析地址参数
以?后面&为分界,把相应的&之间的参数赋值到paraObj 对像里
如 ?a=1&b=2&c=3
paraObj = {'a':1,'b':2,'c':3}
那你的url地址中就不应该再出现=
j.substring(j.indexOf ("=")+1,j.length 只会截取第一个等号前面的地址

回复 支持 反对

使用道具 举报

发表于 2014-8-18 17:51:59 | 显示全部楼层
shang83211 发表于 2014-8-18 17:44
你最后的地址不清不楚的,既有中文又有英文
看他的代码是解析地址参数
以?后面&为分界,把相应的&之间的 ...

看错,代码没有问题,两个等号也没问题
回复 支持 反对

使用道具 举报

发表于 2014-8-22 10:36:21 | 显示全部楼层
我是否可以理解为,如果传递过来的是一个url, 则跳到对应的url上,
否则 就跳到百度 + 传递的那个内容 上?

如果是的话,请看下面的代码:

  1. <script>

  2. function request(paras) {
  3.     var url = location.href;
  4.     var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
  5.     var paraObj = {}
  6.     for (i = 0; j = paraString[i]; i++) {
  7.         paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
  8.     }
  9.     var returnValue = paraObj[paras.toLowerCase()];
  10.     if (typeof(returnValue) == "undefined") {
  11.         return "";
  12.     } else {
  13.         return returnValue;
  14.     }
  15. }

  16. var theurl = request("url");

  17. if (theurl != '') {
  18.         //简单检测一下,是不是一个url,如果是则直接跳url, 否则 跳百度 + 传递的内容
  19.         if(theurl.match(/https?:\/\/.{3,}/i) !== null){
  20.                 location.href = theurl;
  21.         }else{
  22.                 location.href = 'http://www.baidu.com/s?wd=' + theurl;
  23.         }
  24. }

  25. </script>
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-6-3 08:58 , Processed in 0.109099 second(s), 6 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表