0

我通过 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 标记内。可能吗???

4

2 回答 2

0

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

</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 处理。

于 2013-09-18T07:31:56.113 回答
0

与上面的答案相同,但有细微的变化。

</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;而是设置“价值”。

于 2013-09-18T08:07:35.263 回答