Как я могу заполнить встроенную форму веб-сайта параметрами URL, используя Javascript? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть форма Zoho, встроенная в сайт Squarespace, и мне нужно заполнить некоторые поля параметрами URL в Javescript.Я использую следующий код, чтобы получить параметры:

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

, а затем установить параметры для переменных:

  var campaign1 = getUrlVars()["campaign"];
  alert(campaign1);

Так, чтобы получить параметр с именем 'camp' вURL-адрес и назначает его для «campaign1».Предупреждение просто для того, чтобы показать, что оно работает, и оно есть.Затем я хочу запустить это:

<script type="text/javascript" src="https://forms.zohopublic.com/....j7Q?campaign="+campaign1 id="ZFScript">  alert(campaign1); </script>

Но независимо от того, что я делаю, я не могу заставить эту часть ссылаться на переменную в разделе 'src =', но я могу ссылаться на нее в 'alert'(campaign1);»сразу после.

Я также попробовал это, что означало сохранить весь URL-адрес в переменную с именем 'site' и просто запустить 'src = site', но это тоже не сработало.

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

}
  var campaign1 = getUrlVars()["campaign"];
  var site = "https://forms.zohopublic.com....j7Q?campaign="+campaign1
</script>
<script type="text/javascript"
 src=site id="ZFScript"> alert(site);</script>

1 Ответ

0 голосов
/ 24 октября 2018

Ваша проблема в том, что вы пытаетесь написать некоторый код js, где он не анализируется / не обрабатывается / не выполняется.

Код js будет выполняться внутри тегов <script> или onEvent атрибутов.Например, onclick или onload .

Итак, вы хотите выполнить код js внутри тега script , который сгенерирует скрипттег с атрибутом динамического src, который вы пытаетесь достичь.Это способ сделать это:

<script type="text/javascript">
  // [...]
  var campaign1 = getUrlVars()["campaign"];
  var site = "https://forms.zohopublic.com....j7Q?campaign="+campaign1;

  // create a script node
  var scriptElement = document.createElement('script');
  // set its src attribute
  scriptElement.setAttribute('src', site);
  // add you new script node to your document
  document.body.appendChild(scriptElement);
</script>
...