post.php?replyto=username&othervariable=value
例如,如果我单击带有此URL的链接,那么我想获取replyto=username
值并使用jquery在文本框中插入值。
function insertParamIntoField(url, param, field) {
var anchor = document.createElement('a'), query;
anchor.value = url;
query = anchor.query.split('&');
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a .reply").click(function () {
insertParamIntoField(this.href, "replyto", $("input .inputField")[0]);
return false; // prevent default action
});
这是我的HTML代码:
<textarea name="inputField" id="inputField" tabindex="1" rows="2" cols="40"></textarea>
<a class ="reply" href="home.php?replyto=username">reply</a>
答案 0 :(得分:2)
function insertParamIntoField(url, param, field) {
var anchor = document.createElement('a'), query;
anchor.href = url;
query = anchor.search.substring(1, anchor.search.length).split('&');
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2); console.log(kv);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a.reply").click(function () {
insertParamIntoField(this.href, "replyto", $("textarea.inputField")[0]);
return false; // prevent default action
});
insertParamIntoField
函数适用于任何格式良好的URL(作为字符串)。它的工作原理是为该URL创建一个新的锚DOMElement(但永远不会将它附加到dom),然后使用anchor元素的内置属性(查询,哈希等)来提取我们想要的东西。
如果URL来自锚元素,我们可以创建此函数的新版本,该版本使用现有锚点而不是创建新锚点:
function insertParamIntoField(anchor, param, field) {
var query = anchor.search.substring(1, anchor.search.length).split('&'); // anchor is a DOMElement
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a.reply").click(function () {
insertParamIntoField(this, "replyto", $("textarea.inputField")[0]);
return false; // prevent default action
});
答案 1 :(得分:1)
可以使用a simple function解析网址。在Javascript中使用它:
$.urlParam = function(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
然后你可以打电话:
$.urlParam('username');
它将返回用户名。因此,要在文本框中实际使用它,请执行以下操作:
$('#textBoxId').val($.urlParam('username'));
答案 2 :(得分:0)
$('textarea').val("<?php echo $_GET['replyto']");
答案 3 :(得分:0)
使用this SO answer的Artem Barger代码(这是很棒的顺便说一句),{{3}}可以从查询字符串中按名称获取任何参数:
function getParameterByName( name )
{
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, " "));
}
然后只需将值插入文本框:
$("#yourTextBox").val(getParameterByName('replyto'));
答案 4 :(得分:0)
您应该能够使用?replyto=username&othervariable=value
抓取window.location.search
部分,然后您必须获得所需的部分
var print = '?replyto=username&othervariable=value'; // Would be window.location.search in practice
$('textBox').val(print.substr(print.indexOf('replyto=')+8,print.indexOf('&')-(print.indexOf('replyto=')+8)));
答案 5 :(得分:0)
以下是一些可以帮助您的Javascript。只需从getQuerystringNameValue()函数中获取返回值并使用$(“#textboxID”)。val(returnValue);将其分配给文本框。
alert("name1" + " = " + getQuerystringNameValue("name1"));
alert("name2" + " = " + getQuerystringNameValue("name2"));
alert("name3" + " = " + getQuerystringNameValue("name3"));
function getQuerystringNameValue(name)
{
// For example... passing a name parameter of "name1" will return a value of "100", etc.
// page.htm?name1=100&name2=101&name3=102
var winURL = window.location.href;
var queryStringArray = winURL.split("?");
var queryStringParamArray = queryStringArray[1].split("&");
var nameValue = null;
for ( var i=0; i<queryStringParamArray.length; i++ )
{
queryStringNameValueArray = queryStringParamArray[i].split("=");
if ( name == queryStringNameValueArray[0] )
{
nameValue = queryStringNameValueArray[1];
}
}
return nameValue;
}