如何在jquery ready函数中获取URL参数?
我有以下内容:
$(document).ready(function() { window.location.href='http://target.SchoolID/set?text='; });
因此,如果有人使用以下url访问包含上述代码的页面:
Somepage.php?ID = ABC123
我希望ready函数中的text变量为:abc123
有任何想法吗?
你不需要jQuery。 你可以用普通的JS做到这一点
function getParameterByName( name ) //courtesy Artem { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); }
然后你可以像这样得到querystring值:
alert(getParameterByName('text'));
还可以在这里查看其他方法和插件: 如何在JavaScript中获取查询字符串值?
看看这个问题的答案: 如何在JavaScript中获取查询字符串值?
这将从查询字符串中提供id参数的值。
然后你可以做一些像:
$(document).ready(function() { var theId = getParameterByName( id) var newPath = 'http://target.SchoolID/set?text=' + theId window.location.href=newPath; });
为了帮助那些想要拥有多个变量并且在这里增强Moin答案的人,我需要多个变量的代码:
function getParameterByName( name ) //courtesy Artem { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else { if ((results[1].indexOf('?'))>0) return decodeURIComponent(results[1].substring(0,results[1].indexOf('?')).replace(/\+/g, " ")); else return decodeURIComponent(results[1].replace(/\+/g, " ")); } }