每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?

具体需求:

1. 框架集中包含上下两个框架,上面为购物车,下面为商品列表,点击商品列表中购买,实现购物车中额数字增加并传递商品ID

实现思路:

具体代码:

shopping.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <frameset rows="10%, *" frameborder="0" framespacing="0">
        <frame src="shoppingcart.html" name="shoppingcart" noresize="noresize"/>
        <frame src="productinfo.html" name="productinfo" noresize="noresize"/>
    </frameset>
</html>

shoppingcart.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            a {
                text-decoration: none;
            }
            #header nav {
                float: right;
            }
            #header nav ul li {
                list-style: none;
            }
        </style>
    </head>
    <body>
        <div id="header">
            <nav>
                <ul>
                    <li><a href="javascript:void(0)" onclick="alert(self.cartArr)">购物车(<span id="cartNum">0</span>)</a></li>
                </ul>
            </nav>
        </div>
        <script type="text/javascript">
            var cartArr = new Array()
            var cartNum = document.getElementById(‘cartNum‘)
            function buy(id){
                cartArr.push(id)
                cartNum.innerText = parseInt(cartNum.innerText) + 1
            }
        </script>
    </body>
</html>

productinfo.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            .product {
                background-color: #F7F7F7;
                background-clip: content-box;
                height: 70px;
                line-height: 70px;
                padding: 0 0 10px 2px;
            }
            .product .p-left {
                width: 100px;
                float: left;
            }
            .product .p-middle {
                float: left;
            }
            .product .p-right {
                float: right;
                width: 100px;
                text-align: right;
            }
            
        </style>
    </head>
    <body>
        <div class="product">
            <div class="p-left">1</div>
            <div class="p-middle">苹果</div>
            <div class="p-right">
                <a href="javascript:void(0)" onclick="self.parent.frames.shoppingcart.buy(1)">购买</a>
            </div>
        </div>
        <div class="product">
            <div class="p-left">2</div>
            <div class="p-middle">梨子</div>
            <div class="p-right">
                <a href="javascript:void(0)" onclick="self.parent.frames.shoppingcart.buy(2)">购买</a>
            </div>
        </div>
    </body>
</html>

有图有相:

总结说明:

1. 页面中每个框架都拥有自己的window对象,保存在frames集合中,所有框架页面定义的变量或函数都会自动成为对应框架window对象的成员

2.可通过特殊全局对象获取指定框架对象,self对象始终指向当前框架对象,top对象始终指向最外层的框架,parent对象始终指向上层框架对象,页面无框架时,parent/top/self都等于window对象,各个框架之前可以通过对象定位来实现数据通信

时间: 2024-10-05 22:23:12

每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?的相关文章

每日一题_JavaScript.利用纯JavaScript Dom Core实现一个图片轮播效果 ?

具体需求:1. 页面加载后每隔2秒自动从轮播图片2. 鼠标悬停或是点击页面中小图片时,大图片自动跟随切换,并且停止轮播3. 鼠标离开小图片时,图片重新开始轮播 实现思路: 具体代码: html <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" />         <title>Js实现图片轮播</title>         <l

HTML5 - frameset框架集

frameset框架集 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

frameset框架集

frame使用注意事项: 1.frame不能脱离frameset单独使用 2.frame不能放在body标签中,不然不起效果. 3.frame的高度只能由frameset来决定. frameset:是框架集:里面只能存在frame,其它内容不能存在. frameset/frame常用属性: 1.cols="90%,*": 垂直切割页面(左右切割),值可以是整数(像素).百分比和*.*代表占用剩余的空间.值的个数代表被切割成多少个页面.例如:cols="10%,80%,*&qu

每日一题_Python.利用gevent和pipeline快速导出近千万Redis字段值?

事情缘由: 昨日下午工信部前来,几个看似很专业搞安全的非要让现场写脚本导出几百万条Redis记录中的IP字段,由于之间确实没想过如何快速导出这么多数据,只能尴尬认怂~但下来仔细想想我们可以做到~办法总比困难多~ 具体需求: 1. 快速导出Redis中只包含[0-9a-z]组成的16序列号下的WlanIP字段 实现思路: 1. 必然先想到多线程/多进程/多协程,最终选择gevent协程池的原因的是涉及到Redis读和文件写操作,相对于多进程/多线程更容易控制且时间不会浪费在阻塞上,异步来回切换更适

每日一题_JavaScript.两种方式实现网页加载后onload绑定多个函数?

具体需求: 1. 为网页加载后触发的onload事件绑定多个执行函数 实现思路: 1. 可直接给onload绑定一个匿名函数,匿名函数内部调用多个函数 2. 可自定义个函数,首先保存之前window.onload的值,然后判断window.onload的类型是否为function,如果不是就让window.onload的值设置为自定义的函数,否则就先执行window.onload之前绑定的函数,然后在执行自定义的函数 具体代码: <!DOCTYPE html> <html>    

每日一题_Python.利用yield生成器实现协程下的tps透明传输CS测试

具体需求:1. 模拟Device首先发送注册包注册到TPS服务器,然后Client发送私有数据包到TPS,测试Device可以接收到私有数据包则返回成功或标志位(0, '')或(1, 'errormsg')2. 由于此插件是用于自己写的插件式监控系统,所以入口函数名必须和文件名保持一致,这里暂定为server_tps_status.py 实现思路: 具体代码: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Auth

js基础和js操作bom和dom对象

流程控制 if判断 if (a == 1){ //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容 console.log('1111'); } else{ console.log('222'); } 多条件判断 var a = 0; if(a > 1){ // console.log('1111'); // var hhhh = document.getElementById('d1'); // hhhh.innerText = '彭于晏'; }else if(a<1){ con

【转】frameset 框架集使用语法,常用语后台。

XHTML 框架概述 框架的使用可以让浏览器“分割”成多个页面显示内容,常用于如网站后台管理这些菜单项目固定,且对美观性和搜索引擎要求不高的地方. 框架的优缺点 框架方便制作栏目导航,操作各栏目时不需要重新载入整个页面 框架会产生较多页面,不易管理 不容易打印整个框架页面 对搜索引擎不友好 基于框架的以上特点,目前框架几乎只用于系统后台管理中,而不建议使用于页面展示中. 上下框架 我们以最简单的上下框架来分析框架的原理. 创建一个名字为frame.html新页面,关键代码如下: <!DOCTYP

CISP/CISA 每日一题 七

CISA 每日一题(答) 确保只有恰当授权的出站交易才能被处理,控制目的: 1.出站交易是基于授权而被启动: 2.出站交易包含了唯一的预先授权的交易类型: 3.出站交易只能被发送到合法的商业伙伴那里. EDI 的审计,信息系统审计师必须评价: 1.Internet 加密处理,保证交易的可靠性.完整性.机密性和交易无否定性: 2.更新应用前进行编辑检查,鉴别错误的.不寻常的或无效的交易: 3.执行附加的计算机化检查,评价交易的合理性和有效性 4.确保每个进站交易都被日志文件记录下来: 5.对接收交