我的简单 javascript 功能是将参数添加到当前 URL 的最佳方式吗
Does my simple javascript function, is the best way to add parameters to current URL
我编写了一个 javascript 函数,您可以使用它来向当前 URL 添加参数。它 returns 您当前的 URL 添加了参数。我不确定此功能是否适用于所有浏览器。目前它在我的 Chrome 浏览器中完美运行。能否请您告诉我这个功能的缺点,或者我该如何改进它或任何其他方式来做同样的事情?
function AddParamToURL(param_key, param_value)
{
var currentURL, flag, newURL;
currentURL = window.location.href;
flag = currentURL.indexOf("?");
if (flag == -1)
{
newURL = currentURL + "?" + param_key + "=" + param_value;
}
else
{
newURL = currentURL + param_key + "=" + param_value;
}
return newURL;
}
修复了 ?
后面可能没有任何键的情况,并在第二种情况下添加了 &
Fiddle : http://jsfiddle.net/0spsjeaL/3/
function AddParamToURL(param_key, param_value)
{
var currentURL, flag, newURL;
currentURL = window.location.href;
flag = currentURL.split("?");
if(flag.length <= 1)
{
newURL = currentURL + "?" + param_key + "=" + param_value;
}
else
{
newURL = currentURL + "&" + param_key + "=" + param_value;
}
return newURL;
}
alert(AddParamToURL('name', 'John'));
我会将路径作为参数发送给函数,因为您不会总是只使用当前 window.href,您可能还想发送一些其他路径。
然后,您可以在添加到路径之前通过处理参数分隔符来删除一些冗余。
当您要添加多个参数时,这将循环工作。
function AddParamToURL(currentPath, param_key, param_value)
{
var flag = currentPath.split("?");
var paramSeparator = (flag.length <= 1) ? "?" : "&";
return currentPath + paramSeparator + param_key + "=" + param_value;
}
您可以内联很多东西,param_key + "=" + param_value
是重复代码。您还忘记了参数之间的 &
。
function AddParamToURL(param_key, param_value)
{
var url = window.location.href;
var newUrl = url.indexOf('?') < 0 ? url + '?' : url + '&';
return newUrl + param_key + '=' param_value;
}
我编写了一个 javascript 函数,您可以使用它来向当前 URL 添加参数。它 returns 您当前的 URL 添加了参数。我不确定此功能是否适用于所有浏览器。目前它在我的 Chrome 浏览器中完美运行。能否请您告诉我这个功能的缺点,或者我该如何改进它或任何其他方式来做同样的事情?
function AddParamToURL(param_key, param_value)
{
var currentURL, flag, newURL;
currentURL = window.location.href;
flag = currentURL.indexOf("?");
if (flag == -1)
{
newURL = currentURL + "?" + param_key + "=" + param_value;
}
else
{
newURL = currentURL + param_key + "=" + param_value;
}
return newURL;
}
修复了 ?
后面可能没有任何键的情况,并在第二种情况下添加了 &
Fiddle : http://jsfiddle.net/0spsjeaL/3/
function AddParamToURL(param_key, param_value)
{
var currentURL, flag, newURL;
currentURL = window.location.href;
flag = currentURL.split("?");
if(flag.length <= 1)
{
newURL = currentURL + "?" + param_key + "=" + param_value;
}
else
{
newURL = currentURL + "&" + param_key + "=" + param_value;
}
return newURL;
}
alert(AddParamToURL('name', 'John'));
我会将路径作为参数发送给函数,因为您不会总是只使用当前 window.href,您可能还想发送一些其他路径。 然后,您可以在添加到路径之前通过处理参数分隔符来删除一些冗余。 当您要添加多个参数时,这将循环工作。
function AddParamToURL(currentPath, param_key, param_value)
{
var flag = currentPath.split("?");
var paramSeparator = (flag.length <= 1) ? "?" : "&";
return currentPath + paramSeparator + param_key + "=" + param_value;
}
您可以内联很多东西,param_key + "=" + param_value
是重复代码。您还忘记了参数之间的 &
。
function AddParamToURL(param_key, param_value)
{
var url = window.location.href;
var newUrl = url.indexOf('?') < 0 ? url + '?' : url + '&';
return newUrl + param_key + '=' param_value;
}