如何在页面加载时将变量传递到输入值?

时间:2019-04-05 10:21:15

标签: javascript input dom-events

输入字段未打印从功能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 个答案:

答案 0 :(得分:1)

以下对我有用:

<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="">

问题在于,触发onpageshow事件时,很可能未完全加载DOM。一种类似的解决方案是使用body元素上的onload事件属性来触发函数。

<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,其中删除了hidden属性以显示带有结果值的输入字段。

答案 1 :(得分:1)

尝试这个

<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>