JavaScript之页面间数据传递案例

本文主要介绍如何利用JS及html实现页面之间数据的传递,以登录之后显示用户信息为例进行讲解。

1.会话存储的使用:将用户输入的登录信息存储于会话存储空间中,当跳转至另一页面后,利用该存储空间中的信息即可进行显示。代码如下:

登录页面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="index.html">
        <div><span>用户名:</span><input type="text"></div>
        <div><span>昵称:</span><input type="text"></div>
        <div><input type="submit" value="登录"></div>
    </form>
    <script>
        var inputs = document.querySelectorAll('input');
        inputs[2].onclick = function() {
            if (inputs[0].value == '' || inputs[1].value == '') {
                alert('输入不可为空!');
                return;
            }
            // 窗口关闭即销毁
            sessionStorage.setItem('name', inputs[0].value);
            sessionStorage.setItem('nickname', inputs[1].value);
        }
    </script>
</body>

</html>

 首页:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <h1>首页</h1>
    <div><span>欢迎</span> <span></span></div>
    <div><span>你的昵称是:</span><span></span></div>
    <script>
        var spans = document.querySelectorAll('span');
        spans[1].innerHTML = sessionStorage.getItem('name');
        spans[3].innerHTML = sessionStorage.getItem('nickname');
    </script>
</body>

</html>

2.location.search的使用:利用form表单的action属性、location的href属性或是form表单的get方法可实现页面的跳转及数据在网址上的显示,之后利用location.search并结合字符串方法的使用即可获取相应的登录信息。

(1)利用form的action属性(method须指定为post请求):

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="index1.html" method="post">
        <div><span>用户名:</span><input type="text"></div>
        <div><span>昵称:</span><input type="text"></div>
        <div><input type="submit" value="登录"></div>
    </form>
    <script>
        var inputs = document.querySelectorAll('input');
        var form = document.querySelector('form');
        inputs[2].onclick = function(e) {
            if (inputs[0].value == '' || inputs[1].value == '') {
                alert('输入不可为空!');
                e.preventDefault();
                return;
            }
            form.action = 'index1.html?name=' + inputs[0].value + '&nickname=' + inputs[1].value;
        }
    </script>
</body>

</html>

利用location.href:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form>
        <div><span>用户名:</span><input type="text"></div>
        <div><span>昵称:</span><input type="text"></div>
        <div><input type="submit" value="登录"></div>
    </form>
    <script>
        var inputs = document.querySelectorAll('input');
        var form = document.querySelector('form');
        inputs[2].onclick = function(e) {
            e.preventDefault();
            if (inputs[0].value == '' || inputs[1].value == '') {
                alert('输入不可为空!');
                return;
            }
            location.href = './index2.html?name=' + inputs[0].value + '&nickname=' + inputs[1].value;
        }
    </script>
</body>

</html>

两种方法的主页是一致的,如下:(需要注意的是,网址的中文若要正常显示出来,需要通过decodeURI()函数进行解码操作)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <h1>首页</h1>
    <div><span>欢迎</span> <span></span></div>
    <div><span>你的昵称是:</span><span></span></div>
    <script>
        var spans = document.querySelectorAll('span');
        var t = decodeURI(location.search);
        console.log(t);
        spans[1].innerHTML = t.slice(t.indexOf('=') + 1, t.indexOf('&'));
        spans[3].innerHTML = t.slice(t.lastIndexOf('=') + 1);
    </script>
</body>

</html>

另外,form的get请求提供了更为简单的方法,可直接获取表单内容构成搜索参数。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="index1.html" method="get">
        <div><span>用户名:</span><input type="text" name="username"></div>
        <div><span>昵称:</span><input type="text" name="nickname"></div>
        <div><input type="submit" value="登录"></div>
    </form>
    <script>
        var inputs = document.querySelectorAll('input');
        var form = document.querySelector('form');
    </script>
</body>

</html>

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript是一种流行的编程语言,被广泛用于网页开发。Vue.js是一个基于JavaScript的前端开发框架,它提供了一套简洁、灵活的工具,使得开发者可以更轻松地构建交互式的Web应用程序。 Vue.js具有以下特点: 1. 渐进式:Vue.js采用渐进式的设计,可以逐步引入到现有的项目中,也可以通过逐步学习来适应各种开发需求。 2. 轻量级:Vue.js的核心库只有约21KB,加载速度快,非常适合于移动端开发。 3. 组件化:Vue.js支持组件化的开发方式,开发者可以根据需要构建复用性高、可维护性好的组件,提高开发效率。 4. 响应式:Vue.js采用了响应式的设计,当数据发生变化时,对应的页面会自动更新,大大减少了处理DOM操作的工作。 5. 单文件组件:Vue.js支持单文件组件的开发方式,将HTML、CSS、JS代码封装在同一个文件中,提高了代码的可读性和可维护性。 一个使用Vue.js的Web开发案例教程可能包含以下内容: 1. 环境搭建:介绍如何安装配置开发Vue.js的环境,如Node.js和Vue CLI。 2. 基础语法:引导学习者了解Vue.js的基本语法和常用指令,如数据绑定、事件处理、条件渲染等。 3. 组件开发:讲解如何使用Vue.js构建组件,如何进行组件通信、数据传递等。 4. 路由管理:介绍Vue Router,帮助学习者构建单页应用程序,实现页面的切换和导航。 5. 状态管理:介绍Vuex,帮助学习者管理应用程序的状态,实现数据的集中管理和共享。 6. 前后端交互:介绍如何使用Axios等工具,与后端服务器进行数据交互。 7. 实战项目:引导学习者完成一个完整的Vue.js项目,如博客系统、电子商务网站等。 通过这样的案例教程,学习者可以逐步了解和掌握Vue.js的开发思想和技术,提高自己的Web开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值