首页 > 纯前端,判断进入A页面时链接中有没有传进一个参数?

纯前端,判断进入A页面时链接中有没有传进一个参数?

从B页面进入A页面,链接是A.html。
从c页面进入A页面,链接是A.html?ss=da。

在A页面打开时,如何判断有没有参数,并根据不同链接执行不同方法


前端用js吧。
以前我写的一段拿出来可以作为范例。

<script>
//方法
var request =
{
QueryString : function(val)
{
var uri = window.location.search;
var re = new RegExp("" +val+ "=([^&?]*)", "ig");
return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
}
}
</script>

用法:
URL: player.html?inputStr=http://***/三国演义.The.Romance.of.three.kingdoms.1994.中国.XTM.DVD-HALFCD/三国演义.The.Romance.of.three.kingdoms.1994.中国.XTM.DVD-HALFCD.EP37.mkv

<script>
//调用
var rt = request.QueryString("inputStr");
document.write("<video src=\""+rt+"\" controls preload></video>")
</script>

就是把inputStr传进去的视频地址作为参数传给rt,然后用video标签包起来。


Orz 那个不是 window.location.search 吗?

附:用 window.location.hash 还可以促发 hashShange 事件


请使用成熟的 query-string 库

https://github.com/sindresorhus/query-string

jsconsole.log(location.search);
// ?foo=bar

var parsed = queryString.parse(location.search);
console.log(parsed);
// {foo: 'bar'}

console.log(location.hash);
// #token=bada55cafe

var parsedHash = queryString.parse(location.hash);
console.log(parsedHash);
// {token: 'bada55cafe'}

parsed.foo = 'unicorn';
parsed.ilike = 'pizza';

location.search = queryString.stringify(parsed);

console.log(location.search);
// ?foo=unicorn&ilike=pizza

javascriptvar 
o=location.search.substr(1).split('&'),
i=o.length,
_o,
GET={};

while(i--){
    _o=o[i].split('=');
    GET[_o.shift()]=decodeURIComponent(_o.join('='));
}

if(GET['ss']=='da'){
    /* 传入参数有 ss 并且等于 'da' */
}

呃...
再加上几个例子

上面运行完之后

再运行

javascriptGET.ss 

或者

javascriptGET['ss'] 

就会返回 'dd'

你也可以直接用它进行判断

javascriptif(GET.ss=='dd'){
    alert('GET 参数 ss 值等于 dd');
} 

我是php的,这种工作也用前端做啊?,通常跳转页面不都是后台进入控制器通过if判断指定魔板么?如果有参数进入什么模板,如果没参数进入什么模板?我不是来回答问题的哈,我是来学知识的袄,通常js代码不都是等待bom活着dom加载完成才执行么?这一瞬间页面已经出来了袄,这个页面给后端做不是手拿把掐么?难不成你写的是纯静态页面啊?求知识袄


希望对你有帮助

/*
 * 获取特定字段的查询字符串
 * @param {String} name: 查询字符串的字段名
 */
function getQuerySrting(name) {
    var search = location.search.substring(1).split('&');
    var value = false;
    for (var i = 0;i < search.length;i++) {
        var keyValue = search[i].split('=');
        if (keyValue[0] == name) {
            value = keyValue[1];
        }
    }
    return value;
}

javascriptfunction searchQuery(query) {
    return decodeURI(window.location.search.replace(new RegExp('^(?:.*[&\\?]' + encodeURI(query).replace(/[\.\+\*]/g, '\\$&') + '(?:\\=([^&]*))?)?.*$', 'i'), '$1'));
}

如果有该参数则返回参数值,如果没有则返回空字符串


用js拆location.href,具体代码本站应该有相关示例,自己找找

【热门文章】
【热门文章】