Javascript擷取HTML靜態頁面參數傳遞值樣本

來源:互聯網
上載者:User

給大家看一下My Code 只要把這些代碼嵌入到分頁檔即可

例一
利用Regex來擷取
複製代碼 代碼如下:
var LocString = String(window.document.location.href);
function getQueryStr(str) {
var rs = new RegExp("(^|)" + str + "=([^&]*)(&|$)", "gi").exec(LocString), tmp;
if (tmp = rs) {
return tmp[2];
}
// parameter cannot be found
return "";
}

調用方法
複製代碼 代碼如下:
document.getElementById("user").value = getQueryStr("user");
document.getElementById("password").value = getQueryStr("password");
document.getElementById("sysno").value = getQueryStr("sysno");

例二
利用split函數來按參數切成數組
複製代碼 代碼如下:
<script>
urlinfo=window.location.href; //擷取當前頁面的url
len=urlinfo.length;//擷取url的長度
offset=urlinfo.indexOf("?");//設定參數字串開始的位置
newsidinfo=urlinfo.substr(offset,len)//取出參數字串 這裡會獲得類似“id=1”這樣的字串
newsids=newsidinfo.split("=");//對獲得的參數字串按照“=”進行分割
newsid=newsids[1];//得到參數值
alert("您要傳遞的參數值是"+newsid);
</script>

不過一定要記得 這個方法只是針對含有參數的url有用 ,如果對方用了POST方法傳遞參數, url中是不會含有參數的所以這個技巧只對GET方法或者指定了參數的url有用哦

下面看一個完整的執行個體

aa.htm是參數輸滲入滲出介面
bb.htm是參數接收處理介面
aa.htm
複製代碼 代碼如下:
 <html>
  <head>
  </head>
  <body>
  <script>
  function submit()
  {
  var input1 = document.getElementById("inputid");
  window.open("bb.htm?inputStr=" + input1.value);//傳入參數
  }
  </script>
  <input type = "text" id = "inputid">
  <input type = "button" onclick = "submit()" value = "提交">
  </body>
  </html>
  bb.htm:
  <html>
  <head>
  <script>
  //獲得參數的方法
  var request =
  {
  QueryString : function(val)
  {
  var uri = window.location.search;
  var re = new RegExp("" +val+ "=([^&?]*)", "ig");
  return ((uri.match(re))?(uri.match(re)[0].substr(val.leng th+1)):null);
  }
  }
  </script>
  </head>
  <body>
  <script>
  //調用方法獲得參數
  var rt = request.QueryString("inputStr");
  alert(rt);
  </script>
  </body>
  </html>

bb.htm
複製代碼 代碼如下:
<html>
  <head>
  <title>test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <SCRIPT LANGUAGE="JavaScript">
  <!--
  var request = {
  QueryString : function(val) {
  var uri = window.location.search;
  var re = new RegExp("" +val+ "=([^&?]*)", "ig");
  return ((uri.match(re))?(uri.match(re)[0].substr(val.leng th+1)):null);
  }
  }
  var a = request.QueryString ("a");
  var b = request.QueryString ("b");
  var c = request.QueryString ("c");
  if ((a != null)){a=a} else{a="參數A空"}
  if ((b != null)){b=b} else{b="參數B空"}
  if ((c != null)){c=c} else{c="參數C空"}
  document.writeln("參數A: " + a);
  document.writeln("<br>參數B: " + b);
  document.writeln("<br>參數C: " + c);
  //-->
  </SCRIPT>
  </head>
  <body>
  <form name="form1" action="?">
  請輸入參數值:<br>
  <SCRIPT LANGUAGE="JavaScript">
  document.writeln("A:<input type='text' name='a' value='"+a+"'><br>");
  document.writeln("B:<input type='text' name='b' value='"+b+"'><br>");
  document.writeln("C:<input type='text' name='c' value='"+c+"'><br>");
  </SCRIPT>
  <input type="submit" name="Submit" value="提交參數查觀效果">
  </form>
  </body>
  </html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.