Как передать переменную во входное значение при загрузке страницы? - PullRequest
0 голосов
/ 05 апреля 2019

В поле ввода не выводится значение, сгенерированное из функции domainRef.

Вот мой код:

<div id="divref" onpageshow="domainRef()">

<script>
function domainRef(){
var ref = document.referrer.toString();
 document.getElementById("test").value = ref ;
}                          
</script>
</div> 

<input type="hidden" id="test" value="">

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Попробуйте это

<div id="divref"></div>
<input type="hidden" id="test" value="">
<script>
  domainRef();
  function domainRef(){
    var ref = document.referrer.toString();
    document.getElementById("test").value = ref ;
  }                          
</script> 
1 голос
/ 05 апреля 2019

У меня работает следующее:

<div id="divref">
  <script>
    window.onload = domainRef;

    function domainRef() {
      var ref = document.referrer.toString();
      document.getElementById("test").value = ref;
    }
  </script>
</div>
<input type="hidden" id="test" value="">

Проблема в том, что, скорее всего, DOM не был полностью загружен при запуске события onpageshow. Аналогичным решением является запуск функции с использованием атрибута события onload для элемента body.

<body onload=domainRef()>
  <div id="divref">
    <script>
      function domainRef() {
        var ref = document.referrer.toString();
        document.getElementById("test").value = ref;
      }
    </script>
  </div>
  <input type="hidden" id="test" value="">
</body>

Для последнего решения я создал jsFiddle , где я удалил скрытый атрибут, чтобы показать поле ввода с результирующим значением.

...