两个HTML页面如何传递数据?

html-css026

两个HTML页面如何传递数据?,第1张

一.通过表单简单的传输数据,利用js代码接收传递的数据,注意method属性要设为get。<form id="form" action="data.html" method="get"></form>//action的值是你的目的html在你的目的html中可通过url接收传递的数据,并将数据保存在一个对象中。<script type="text/javascript" charset="utf-8"> window.onload = function() {var url = window.location.search//location.search是从当前URL的?号开始的字符串console.log(url) var Request = new Object() if (url.indexOf('?') != -1) {var a = '' var str = url.substr(1)  //去掉?号strs = str.split('&') for (var i = 0i <strs.lengthi++) {a = strs[i].split('=')[0];Request[a] = decodeURI(strs[i].split('=')[1])//解码,生成获取信息的对象console.log(Request[a]) }}console.log(Request)123456789101112131415161718注意这种方式传递中文数据需要用decodeURIComponent()或decodeURL()函数解码,unescape()现在似乎已经淘汰了。然后利用document.write()或innerHTML等方法或函数将数据显示在网页上。此种方法适合自己平时写JS的小练习,此种方法无法将数据保存下来。2.使用Cookie传递参数下面是简单的实例,a页面保存Cookie,b页面读取。a.html<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>a</title> <script type="text/javascript"> /*** * @param {string} cookieName Cookie名称 * @param {string} cookieValue Cookie值 */function SetCookie(cookieName,cookieValue) {/*设置Cookie值*/document.cookie = cookieName + "=" + escape(cookieValue)}function login() {var username = $("user").value if(username.length>0 &&username) {SetCookie("username", username) /*跳转到b.html页面*/document.location = "b.html" }}function $(id) {return document.getElementById(id) }</script></head><body><div id="main"> <div><span>请输入你的名字</span><input type="text" id="user" /></div> <div> <input type="button" onclick="login()" value="提交" /> </div></div></body></html>123456789101112131415161718192021222324252627282930313233343536b.html<html><head> <meta charset="UTF-8"> <title>b</title> <script type="text/javascript"> /*** *读取指定的Cookie值 *@param {string} cookieName Cookie名称 */function ReadCookie(cookie_name){//判断是否存在cookieif (document.cookie.length >0){//查询cookie开始部分cookie_start = document.cookie.indexOf(cookie_name + "=")//如果存在if (cookie_start != -1){//计算结束部分cookie_start = cookie_start + cookie_name.length + 1cookie_end = document.cookie.indexOf("", cookie_start)//如果已经是最后一个cookie值,则取cookie长度if (cookie_end == -1) {cookie_end = document.cookie.length}//获取cookie值,unescape对特殊字符解密return unescape(document.cookie.substring(cookie_start,cookie_end))}}//其它情况返回空return ""}function $(id) {return document.getElementById(id) }function init() {var username = ReadCookie("username") if(username &&username.length>0) {$("msg").innerHTML = "<h1>欢迎光临," + username + "!</h1>" } else {$("msg").innerHTML = "<a href='a.htm'>请录入名字</a>" }}</script></head><body onload="init()"><div id="msg"></div></body></html>1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950此种方法也是适合自己平时写JS的小练习,此种方法无法将数据保存下来。3.通过web服务器利用前后端交互前后端交互又可分为表单交互和url参数交互。表单交互是指在HTML中创建一个表单,用户填写表单后提交给服务器,服务器收到表单后返回处理结果。其大致构成如下:URL参数经常用于浏览器向服务器提交一些请求信息。其流程图大致如下:例如利用nodejs与json文件相连接,实现对本地json数据的增删改查,在不同网页间传递数据。————————————————版权声明:本文为CSDN博主「想躺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_41209003/article/details/103739371

html是静态页面,可以使用url链接传值,比如a.html和b.html两个页面

a.html中有一个链接

1

<a href="b.html?x=2&y=3">进入b.html</a>

可以使用到js,如下:

a.htm:

1

2

3

4

<form action="b.htm" >

<input name="q" type="text" value="" />

<input type="submit" value="提交" id="" />

</form>

b.htm

<html>

<body>

<div id="qbox"></div>

<script type="text/javascript">

function getArgs() {

var args = {}

var query = location.search.substring(1)

// Get query string

var pairs = query.split("&")

// Break at ampersand

for(var i = 0i <pairs.lengthi++) {

var pos = pairs[i].indexOf('=')

// Look for "name=value"

if (pos == -1) continue

// If not found, skip

var argname = pairs[i].substring(0,pos)// Extract the name

var value = pairs[i].substring(pos+1)// Extract the value

value = decodeURIComponent(value)// Decode it, if needed

args[argname] = value

// Store as a property

}

return args// Return the object

}

var str =getArgs()

alert(str['q'])//和input的name对应取值,

document.getElementById("qbox").innerHTML = str['q']//然后赋值给DIV

</script>

</body>

</html>

希望能帮到你哦!

使用Cookie传递参数 ,a页面保存Cookie,b页面读取,代码如下:

a页面

<html>

<head>

<title>a</title>

<style type="text/css">

* {margin:0}

body {text-align:centermin-width:760px}

div {padding:3px 3px 3px 3px}

#main {width:720pxmargin:0 autotext-align:leftmargin-top:30px}

#main div span {width:50px}

</style>

<script type="text/javascript">

/***

* @param {string} cookieName Cookie名称

* @param {string} cookieValue Cookie值

* @param {number} nDays Cookie过期天数

*/

function SetCookie(cookieName,cookieValue,nDays) {

    /*当前日期*/

    var today = new Date()

    /*Cookie过期时间*/

    var expire = new Date()

    /*如果未设置nDays参数或者nDays为0,取默认值1*/

    if(nDays == null || nDays == 0) nDays = 1

    /*计算Cookie过期时间*/

    expire.setTime(today.getTime() + 3600000 * 24 * nDays)

    /*设置Cookie值*/

    document.cookie = cookieName + "=" + escape(cookieValue)

        + "expires=" + expire.toGMTString()

}

function login() {

    var username = $("user").value

    var password = $("pass").value

    /*是否选中7天内无需登录*/

    var save = $("save").checked

    if(username=="abc" && password=="abc") {

        if(save) SetCookie("username",username,7)

        else SetCookie("username",username,1)

        /*跳转到ex8.html页面*/

        document.location = "b.htm"

    } else {

        alert("用户名或密码错误!")

    }

}

function $(id) {

    return document.getElementById(id)

}

</script>

</head>

<body>

    <div id="main">

        <div><span>用户名:</span><input type="text" id="user" /></div>

        <div><span>密码:</span><input type="password" id="pass" /></div>

        <div>

            <input type="checkbox" id="save" />

            7天内无需登录

            <input type="button" onclick="login()" value="登录" />

        </div>

    </div>

</body>

</html>

b页面

<html>

<head>

<title>b</title>

<script type="text/javascript">

/***

*读取指定的Cookie值

*@param {string} cookieName Cookie名称

*/

function ReadCookie(cookieName) {

    var theCookie = "" + document.cookie

    var ind = theCookie.indexOf(cookieName)

    if(ind==-1 || cookieName=="") return ""

    var ind1 = theCookie.indexOf('',ind)

    if(ind1==-1) ind1 = theCookie.length

    /*读取Cookie值*/

    return unescape(theCookie.substring(ind+cookieName.length+1,ind1))

}

function $(id) {

    return document.getElementById(id)

}

function init() {

    var username = ReadCookie("username")

    if(username && username.length>0) {

        $("msg").innerHTML = "<h1>欢迎光临," + username + "!</h1>"

    } else {

        $("msg").innerHTML = "<a href='a.htm'>请登录</a>"

    }

}

</script>

</head>

<body onload="init()">

    <div id="msg"></div>

</body>

</html>

效果如下: