zoukankan      html  css  js  c++  java
  • 如何利用JavaScript 在页面间传值

     

    问题场景如下:

    在 a.html 页面中,<form> 的 onsubmit 事件调用一个方法 foo( ),打开 b.html 页面的同时给 b.html 传递参数。方法 foo( ) 中需要传递变量参数到 b.html 页面,在 b.html 页面接受参数值,但不能使用服务器端技术。

     

    解决代码如下:

    a.html
    <html>
    <head>
       
    <title> demo </title>
       
    <meta name="Author" content="xugang" />
       
    <script type="text/javascript">
        
    function foo(){

         
    var a ="abc"// a为变量值
         var str = "b.html?id="+a+";";

         
    //alert(document.frm.action);

         
    //方案一(无效)
         // document.frm.action = str;

         
    //方案二(无效)
         // window.location.href = str;

         
    //方案三(有效)
         window.location.replace(str);
         
    return false;
       }
      
    </script>
    </head>
    <body>
         
    <FORM  name="frm"  method="get"  onsubmit = "return foo()" >
               
    <INPUT  TYPE="SUBMIT" />
         
    </FORM>
    </body>
    </html>

     

    注意:必须 b.html 页面事先存在即可。

    b.html 获得参数值的代码如下:

    b.html 部分代码
    var getQueryString = function(name) {
       
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
       
    var r = window.location.search.substr(1).match(reg);
       
    if (r != nullreturn r[2]; return "";
    }

     

     

    补记:

    ================================================================================================

    今天一早起来,居然从睡梦中找到了更好的解决办法。

    看来睡觉是灵感之源,呵呵 ^_^

     

    myjs.js 代码:

    myjs.js代码
    function foo(){ 
      
            
    var str = "abc"
            
    //document.forms[0].hid.value = str; 
      
            
    var frm = window.event.srcElement; 
            frm.hid.value 
    = str; 
            
    return true
     }

     

    a.html 代码:

    a.html
    <html> 
    <head> 
      
    <title> demo </title> 
      
    <meta name="Author" content="xugang" /> 
      
    <script src="myjs.js"></script> 
    </head> 
    <body> 
      
    <FORM name="frm" METHOD="get" ACTION="b.html" onsubmit="return foo()"> 
        
    <INPUT TYPE="hidden" id="hid" name="hid"> 
        
    <INPUT TYPE="submit" value="提交"> 
      
    </FORM> 
    </body> 
    </html>

     

    注意:给 b.html 页面传值时,b.html 页面必须事先已存在!

    b.html 代码:

    b.html
    <HTML> 
      
    <HEAD> 
        
    <TITLE> New Document </TITLE> 
      
    </HEAD> 
      
    <BODY> 
        
    <SCRIPT LANGUAGE="JavaScript"> 
            document.write(decodeURIComponent(location.search.substr(
    3))); 
        
    </SCRIPT> 
      
    </BODY> 
    </HTML>

     

    作者: XuGang   网名:钢钢
    出处: http://xugang.cnblogs.com
    声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址!
  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/xugang/p/1783239.html
Copyright © 2011-2022 走看看