Мой JS для получения параметров строки запроса не работает, есть идеи, почему? - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь получить простой пример использования js для получения параметров строки запроса, но это не так (хотя я и сказал простой).Вот мой код:

Я попытался вставить операторы оповещения и отладить по старинке, но, честно говоря, я привык использовать VS2017 для c #, а не js

Вот код I 'м.

У меня есть 2 html-страницы, первая просто имеет ссылку:

<a href="h1.html?type=generalk">try me</a>

Вторая имеет код:

    this is some text <br />
    <script> getparams2();</script>   

    this is some more text <br />   


    <script>
        function getUrlParam(parameter, defaultvalue) {
            var urlparameter = defaultvalue;
            if (window.location.href.indexOf(parameter) > -1) {
                urlparameter = getUrlVars()[parameter];
            }
            return urlparameter;
        }
    </script>

    <script>
        function getUrlVars() {
            var vars = {};
            var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
                alert(value);
                vars[key] = value;
            });
            return vars;
        }
    </script>

    <script>
        function getparams2()
        {

            var mytext = getUrlVars()["type"];

        }
    </script>

Результат I 'Я пытаюсь понять, что страница h1.html может отображать параметр типа из URL.

Заранее спасибо, Пол.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Ваш код работает.Вам просто нужно выполнить его, когда документ будет готов, и вам нужно что-то вернуть или обновить страницу, чтобы увидеть результаты.

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
</script>
</head>
<body>
<div id="params"> Printing The URL Params here</div>

<script type="text/javascript">
$( document ).ready(function() {
  getparams2();

  function getUrlParam(parameter, defaultvalue) {
      var urlparameter = defaultvalue;
      if (window.location.href.indexOf(parameter) > -1) {
          urlparameter = getUrlVars()[parameter];
      }
      return urlparameter;
  }

  function getUrlVars() {
      var vars = {};
      var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function 
(m, key, value) {
          alert(value);
          vars[key] = value;
      });
      return vars;
  }

  function getparams2()
  {
      var mytext = getUrlVars()["type"];
      //console.log(mytext);
      $('#params').text(mytext);
  }

});

</script>
</body>
</html>
0 голосов
/ 17 февраля 2019

Я бы сделал это следующим образом:

Функция URL-параметра

function getUrlParam(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 results[1]; }
};

Вызов из вашего getParams2

function getParams2(){
  return getUrlParam('type');
};

getParams2 вернет значениеparam, если он есть в URL.

...