захватить строку запроса с помощью javascript

У меня есть следующий URL-адрес

http://www.test.com/index.html?num1=123&num2=321

Теперь я хочу захватить значения num1 и num2 с помощью javascript

Solutions Collecting From Web of "захватить строку запроса с помощью javascript"

var QueryString = function () { // This function is anonymous, is executed immediately and // the return value is assigned to QueryString! var query_string = {}; var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); // If first entry with this name if (typeof query_string[pair[0]] === "undefined") { query_string[pair[0]] = pair[1]; // If second entry with this name } else if (typeof query_string[pair[0]] === "string") { var arr = [ query_string[pair[0]], pair[1] ]; query_string[pair[0]] = arr; // If third or later entry with this name } else { query_string[pair[0]].push(pair[1]); } } return query_string; } (); alert(QueryString.num1); 

Я чувствую, что добираюсь до параметров get с помощью javascript, который смешивает роли PHP и javascript, поэтому я предпочитаю делать это таким образом. Вы можете получить URL-адрес с помощью window.href и parse, но это лучшая форма

Где-то в модуле PHP:

 echo '<input type="hidden" id="num1_arg" value=" . $_GET['num1'] . '/>'; echo '<input type="hidden" id="num2_arg" value=" . $_GET['num2'] . '/>'; 

Javascript (плохо использовать jquery, но это можно сделать без)

 n1 = $('#num1_arg').val(); n2 = $('#num2_arg').val(); 

Взгляните на эту статью – parseUri

Попробуйте использовать эту простую функцию:

 var parseQueryString = function() { var queryString = window.location.search.substring(1); var pairs = queryString.split("&"); var params = {}; for (var i = 0; i < pairs.length; i++) { var parts = pairs[i].split("="); var key = parts[0]; var value = parts[1]; params[key] = value; } return params; }; 

Если num1 и num2 всегда находятся в одном порядке, вы можете использовать регулярные выражения :

 var url = ... var pattern = /num1=(\d*)&num2=(\d*)/ var match = pattern.exec(url) var num1 = match[1] var num2 = match[2]