JavaScript: BOM and DOM(重点)

    /*
             * JavaScript为大家提供三种对话框
             * 
             * alert 警告框
             * 
             * confirm 确认框
             * 
             * prompt 输入框
             * 
             * 
             */
function closeWin() {
                //关闭浏览器的方法
                window.close()
            }
            
            //定时函数
//          var timeId = setTimeout(function() {
//              alert("刘建宏很帅");
//          },2000);
//          
//          clearTimeout(timeId)
//          clearInterval()


            function openBaidu() {
                // open
                window.open("http://www.baidu.com","newTab","menubar=yes,status=yes,fullscreen=yes")
            }

            
        </script>
    </head>
    <body>
        <button onclick="closeWin()">关闭</button>
        <button onclick="openBaidu()">打开百度</button>
    </body>

BOM(browser object model) 浏览器对象模型

window:

|- history
    |- back
    |- forward
    |- go
|- location
|- screen
    |- height
    |- width
    |- availHeight
    |- availWidth

|- navigator :user-agent 用户代理
|- document (dom) document object model 文档对象模型

location

            /**
             * 要求3秒后刷新网页
             */
            var timer = setTimeout(function() {
                // 刷新网页
                location.reload()
//              window.clearTimeout(timer)
            },3000);
            
            
            console.info(location.href)
            var timer = setTimeout(function() {
                // href返回当前网页的地址
                location.href = "http://www.baidu.com";
            },3000);
            
            console.info(location.href)
            console.info(location.protocol) //返回当前协议
            console.info(location.host)
            console.info(location.hostname)
            console.info(location.hash)//hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。 
            console.info(location.search)//search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号 ? 之后的部分)。

获取DOM对象的五种方法

            /**
             * 在js中,获取dom对象有五种方式
             * 1、直接获取
             */
            // 1、直接使用标签的id对该标签操作,
            // 不推荐
//          show.innerHTML = "这个是新的内容";

            //2 、店家推荐,通过document提供的一个方法document.getElementById()
//          var _div = document.getElementById("show");
//          _div.innerHTML = "这个是使用getElementById获取的";
            
            //3、通过标签名称获取对应的标签
//          var _divs = document.getElementsByTagName("div");
//          console.info(_divs)
//          _divs[0].innerHTML = "这个是使用getElementById获取的";
            
            //4、通过class获取对应的标签
//          var _divs = document.getElementsByClassName("show");
//          console.info(_divs)
//          _divs[1].innerHTML = "是不是";
            
            
            // 5、 通过name属性获取对应的标签
            // 使用场景只有form标签
            var _name = document.getElementsByName("username")
            console.info(_name)
            _name[0].value = "刘帅哥真帅,我好喜欢啊!!!";
            

操作DOM对象的内容

        <script type="text/javascript">
//          window.onload = function() {
//              
//          }
            window.onload = init;
            function init() {
                var _div = document.getElementById("show");
                /**
                 * innerHTML可以插入HTML片段,能够解析HTML文本
                 * 
                 * xss 攻击 
                 * csrf 攻击
                 * 
                 */
//              _div.innerHTML = "<b>刘建宏</b>是个大帅哥,这个是公认的!!";
                /**
                 * innerText和textContent不能解析HTML片段,只能插入文本内容
                 */
                
                // 非w3c规定
//              _div.innerText = "<b>刘建宏</b>是个大帅哥,这个是公认的!!";
                
                // w3c规定
                _div.textContent = "<b>刘建宏</b>是个大帅哥,这个是公认的!!";
                
            }
            
            
        </script>

XSS攻击

XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器
执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列
表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实
施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨
大的,是web安全的头号大敌。

操作DOM对象的属性

<script type="text/javascript">
            window.onload = function() {
                var _div = document.getElementById("show");
//              console.info(_div.title)
                /**
                 * DOM对象.属性名称 
                 * 获取属性时是通用的
                 */
//              _div.title = "刘建宏很帅";

                /**
                 * 获取class的时候,
                 * 使用className来获取
                 */
//              console.info(_div.className)
                /**
                 * 数组的这种方式,一般用来获取id title属性,
                 * 其他一般不用
                 */
//              _div["title"] = "这个是一个新的标题";
//              console.info(_div["style"])

                var _title = _div.getAttribute("title");
                console.info(_title)
                
                _div.setAttribute("title","刘建宏是个大帅锅")
                
            }
        </script>
    </head>
    <body>
        <div id="show" class="msg" title="这个是很漂亮的标题" style="height: 30px;">
            这个是div
        </div>
    </body>

操作DOM对象的样式

    <style type="text/css">
            #show {
                width: 300px;
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <div id="show" style="height: 400px;" onclick="change()">
            
        </div>
        <script type="text/javascript">
            var _show = document.getElementById("show");
            /**
             * 通过dom对象.style.样式属性 这种方式
             * 只能获取行内样式,无法获取外联样式
             */
            console.info(_show.style.height);
//          console.info(_show.style.width);
            
//          // 针对于dom无法获取外联样式,w3c为大家提供了一个getComputedStyle
//          // 这个api存在兼容性,IE9+
// //           console.info(getComputedStyle(_show).width);
            
//          // IE6、 7 8
// //           console.info(_show.currentStyle.width)




// //           var _show = document.getElementById("show");
// //           console.info(getComputedStyle(_show).height)
// //           alert(parseInt(_show.style.height))
            
//          function change() {
//              var _show = document.getElementById("show");
// //               var newHeight = parseInt(_show.style.height) + 200;
// //               _show.style.height = newHeight + "px";
                
//              /**
//               * 获取样式对应值,注意:offsetHeight 获取的值
//               * 包含边框
//               */
//              console.info(_show.offsetHeight)
//              /**
//               * 获取样式对应值,注意:clientHeight 获取的值
//               * 不包含边框
//               */
//              console.info(_show.clientHeight)
                
//              _show.style.width = _show.clientWidth + 200 + "px";
//              _show.style.height = _show.clientHeight + 200 + "px";

            // }

            
        </script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 看书过程中一些摘抄和不理解之处的记录。 1、浏览器安全 恶意网址拦截:常见的恶意网址分为两类:一类是挂马网站,这些...
    小小怪吃吃吃阅读 908评论 0 1
  • 嗯目前文档里几乎没有提到…… 但是,An issuesis here with an offical explan...
    即墨灯火阅读 651评论 0 0
  • 等待 我想将万水千山走遍 直到遇上一种契机 停驻在你的心里 任风沙雕刻脸庞 任流年苍老岁月 任世界风云变幻 我始终...
    石一十二阅读 227评论 1 4
  • 一 小婵是我见过的,最痴情的女孩儿。 当然,除了痴情,她也是有很多闪光点的。她长得不是我们宿舍最出色的,但是,打扮...
    苏子楠阅读 233评论 0 1