【问题标题】:Getting data in url printing in html page在 html 页面中获取 url 打印中的数据
【发布时间】:2013-09-22 20:31:05
【问题描述】:

我通过 Url 获取数据,然后拆分并显示在 java 脚本中,但我无法在 html 页面中打印,请帮助我

第 1 页

<html>
<head>
<script>
    function setURL() {
        var dt_value = document.getElementById("dt_id").value;
        //just test here ..what is coming..
        alert( dt_value );
        var sjdurl =  "page2.html?Name=" + dt_value;
        popup = window.open(sjdurl);
        popup.window.moveTo(950,150); 

    }
</script>
</head>
<body>
    <div style="text-align:left; margin:8px 5px auto;">
       <label for="dt_id">Please enter a date and time </label>
       <input type="Text" id="dt_id" maxlength="25" size="25"/>
       <input type='button' onclick='setURL()' value='SUBMIT'>     
    </div>
 </body>
 </html>

第2页

 <html>
 <head>
 <script LANGUAGE="JavaScript">
     window.onload=getParams
     function getParams() {
         var idx = document.URL.indexOf('?');
         var params = new Array();
         if ( idx != -1 ) {
             var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
             for ( var i = 0; i < pairs.length; i++ ) {
                 nameVal = pairs[i].split('=');
                 params[nameVal[0]] = nameVal[1];
             }
         }
         return params;
     }
     params = getParams();
     firstname = unescape( params["Name"] );
     document.getElementById("d").innerHTML = firstname;
  </script>
  </head>
  <body>
      <input type="text" id="d" value="">
  </body>
  </html>   

如果我使用 document.write() 打印名字;它工作正常,但无法在 html 文本框中打印相同的内容

注意:

我们不会将 java 脚本更改为 body,它必须存在于其中,并且文本字段必须存在于 body 标记内。可以吗???

【问题讨论】:

  • 你需要使用 .value 而不是 .innerHTML document.getElementById("d").value=firstname;
  • 我试过了,它也不起作用 Ashok
  • 你能把 alert(firstname);并检查值是否进入警报
  • 是的,在 java 脚本块中运行良好
  • 尝试更改文本字段的 id 而不是 "d" 并在 document.getElementById() 中给出相同的值并使用 .value 而不是 innerHTML

标签: javascript jquery html url


【解决方案1】:

人们不关心脚本标签的正确放置的典型示例。您应该使用以下代码:

</head>
  <body>
  <input type="text" id="d" value="">
<script LANGUAGE="JavaScript">
  window.onload=getParams
  function getParams()
   {
   var idx = document.URL.indexOf('?');
   var params = new Array();
   if (idx != -1) 
   {
   var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
   for (var i=0; i<pairs.length; i++)
   {
    nameVal = pairs[i].split('=');
    params[nameVal[0]] = nameVal[1];
   }
   }
return params;
 }
  params = getParams();
  firstname = unescape(params["Name"]);
  document.getElementById("d").innerHTML=firstname;
  </script>
  </body>

原因很简单。你打电话的时间document.getElementById("d").innerHTML=firstname;

它在 DOM 中不可用,因此您需要将脚本移动到标记下方,以使其可供 JS 处理。

【讨论】:

    【解决方案2】:

    与上述答案相同,但略有变化。

    </head>
      <body>
      <input type="text" id="d" value="" />
    <script LANGUAGE="JavaScript">
      window.onload=getParams
      function getParams()
       {
       var idx = document.URL.indexOf('?');
       var params = new Array();
       if (idx != -1) 
       {
       var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
       for (var i=0; i<pairs.length; i++)
       {
        nameVal = pairs[i].split('=');
        params[nameVal[0]] = nameVal[1];
       }
       }
    return params;
     }
      params = getParams();
      firstname = unescape(params["Name"]);
      document.getElementById("d").value=firstname;
      </script>
      </body>
    

    不要设置 input.innerHTML;而是设置“价值”。

    【讨论】:

    • 如果您想在 head 中添加脚本,请为 window.onload 添加一个事件侦听器,在该侦听器上执行 document.getElementById("d").value=firstname;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多