Skip navigation


Saya membutuhkan sebuah fungsi untuk menyisipkan parameter query pada sebuah parameter di kode Javascript saya.

Misalnya, untuk URL

http://www.example.com/home?foo1=bar1#anchor

saya ingin menyisipkan parameter “foo2” dengan nilai “bar2”, sehingga menjadi

 http://www.example.com/home?foo1=bar1&foo2=bar2#anchor
 

Lihat bahwa penyisipannya cukup rapi dengan menempatkan variabel tersebut pada bagian parameter dan masih menangani anchor “#anchor”.

Setelah mencari di StackOverflow (When in doubt, ask StackOverflow), saya mendapatkan kodenya.

function addParameter(url, parameterName, parameterValue){

	replaceDuplicates = true;
	
	if(url.indexOf('#') > 0){
		var cl = url.indexOf('#');
		urlhash = url.substring(url.indexOf('#'),url.length);
	} else {
		urlhash = '';
		cl = url.length;
	}
	
	sourceUrl = url.substring(0,cl);
	
	
	
	var urlParts = sourceUrl.split("?");
	var newQueryString = "";
	
	if (urlParts.length > 1)
	{
		var parameters = urlParts[1].split("&");
		for (var i=0; (i < parameters.length); i++)
		{
			var parameterParts = parameters[i].split("=");
			if (!(replaceDuplicates && parameterParts[0] == parameterName))
			{
				if (newQueryString == "")
					newQueryString = "?";
				else
					newQueryString += "&";
				newQueryString += parameterParts[0] + "=" + parameterParts[1];
			}
		}
	}
	if (newQueryString == "")
		newQueryString = "?";
	else
		newQueryString += "&";
	newQueryString += parameterName + "=" + parameterValue;

	return urlParts[0] + newQueryString + urlhash;
}

Cara menggunakannya adalah

url = addParameter("http://www.example.com/home?foo1=bar1#anchor", "foo2", "bar2");

Kodenya di StackOverflow dapat dilihat di sini.

 

One Comment

  1. nambahin parameternya JSON dong pet, masak cuma 1 aja😀


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: