侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

JS中BOM操作知识点

前端  /  管理员 发布于 7年前   161

JS中BOM操作知识点

window对象

全局变量和全局方法都归在window上

alert-comfirm-prompt

让alert 、confirm等弹出框上的提示文字实现换行:\n

// confirm()// 点击确定返回true,取消返回falsevar btn=document.getElementById("btn");btn.onclick=function(){           // 弹出确认对话框   var result=window.confirm("您确定要删除吗?删除之后该信息\n将不可恢复!");           if(result){           document.getElementById("box").style.display="none";   }}       // prompt("text","defaultText")// text:对话框中显示的纯文本// defaultText:默认的输入文本// 点击确认返回文本,点击取消返回nullvar message=prompt("请输入您的星座","天蝎座");console.log(message);

open-close

如果open方法中的url参数为空的话,那么新窗口也会被打开只是不会显示任何文档

window.onload = function(){ // 打开子窗口,显示newwindow.htmlwindow.open("newwindow.html","newwindow","width=400,height=200,        left=0,top=0,toolbar=no,menubar=no,scrollbars=no,location=        no,status=no");         var quit = document.getElementById("quit");     // 点击关闭当前窗口     quit.onclick = function(){           window.close("newwindow.html");     }}

延迟调用setTimeout()

//调用函数var fnCall=function(){     alert("world");}setTimeout(fnCall,5000);       //调用匿名函数var timeout1=setTimeout(function(){  alert("hello");},2000)clearTimeout(timeout1);

实现以下要求:

(1) 点击“删除”按钮3秒后,页面上p里面的文字消失

(2) 点击“删除”按钮之后的3秒内,如果点击“取消删除”按钮,那么页面上p里面的文字就不会被删除

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>定时器</title>    <style type="text/css">        p{width:400px;height:120px;margin-top:50px;border:2px solid gray;padding:10px;}        </style></head><body>     <input type="button" value="删除">     <input type="button" value="取消删除">    <p>点击"删除"按钮后,里面的内容将在3秒钟后消失;    <br/><br/>如点击了"删除"后又不想删除内容,请在点击"删除"按钮3秒之内点击"取消删除"按钮即可</p>    <script type="text/javascript">           var btn1=document.getElementsByTagName('input')[0];           var btn2=document.getElementsByTagName('input')[1];           var p=document.getElementsByTagName('p')[0];           var timer;       btn1.onclick=function(){        timer=setTimeout(function(){          p.innerHTML='';        },3000);       }       btn2.onclick=function(){          clearTimeout(timer);        }    </script></body></html>

验证码倒计时案例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script>        window.onload=function(){        var  btn=document.getElementById("btn");        var  times=10;        var  timer=null;btn.onclick=function(){    if(this.getAttribute("clicked")){return false;}    var _this=this;    timer=setInterval(function(){        times--;    if(times<=0){clearInterval(timer);_this.value="发送验证码";//_this.disabled=false;_this.removeAttribute("clicked",false);times=10;        }else{_this.value=times+'秒后重试';//_this.disabled=true;_this.setAttribute("clicked",true);        }    },1000)}        }    </script></head><body><p class="box">    <input type="button" value="发送验证码" id="btn"></p></body></html>

会闪烁的文字:

<!DOCTYPE html><html>    <head lang="en">        <meta charset="UTF-8">        <title>闪烁的文字</title>        <style type="text/css">p{    width:200px;    height:200px;    line-height:200px;    border:2px solid gray;    text-align:center;    color:red;}        </style>    </head><body>    <h3>会闪烁的文字</h3>        <p id="text"> </p>        <script type="text/javascript">var text=document.getElementById('text');var flag=0;setInterval(function(){  if(flag==0){    flag=1;    text.innerHTML='☆☆☆今日特卖☆☆☆';  }else if(flag==1){    flag=0;    text.innerHTML='★★★今日特卖★★★';  }},500);        </script>    </body></html>

location.href返回当前页面的完整URL

location.hash 返回#后面的

       console.log(location.href);       console.log(location.hash);  var btn=document.getElementById("btn");       btn.onclick=function(){        // 可以实现跳转          location.hash="#top";       }       // 返回服务器名称和端口号       // 本地不行,要到服务器上  console.log(location.host);       // 返回服务器名称  console.log(location.hostname);       // 返回URL中的目录和文件名  console.log(location.pathname);       // 返回URL中的查询字符串,以?开头       console.log(location.search);

改变浏览器的位置

        setTimeout(function(){           // 会在历史记录中生成新纪录location.href='index6.html';window.location='index6.html';   // 不会在历史记录中生成新纪录location.replace("index6.html");        },1000)         document.getElementById("reload").onclick=function(){   // 有可能从缓存中加载location.reload();// 从服务器重新加载 location.reload(true);         }

history保存用户访问页面的历史记录

forward 回到历史记录的下一步

var btn = document.getElementById("btn");    var btn2 = document.getElementById("btn2");    var btn3 = document.getElementById("btn3");    // 点击btn按钮时回到历史记录的上一步,后退btn.onclick = function() {        // 方法一    history.back();        // 方法二    history.go(-1);}    // 点击btn2按钮时回到历史记录的下一步,前进btn2.onclick = function() {  // 方法一        history.forward();        // 方法二    history.go(1);}btn3.onclick = function() {        // 前进n步history.go(n);        // 后退n步    history.go(-n);}

screen对象

// 获取屏幕可用宽高console.log("页面宽:"+screen.availWidth);console.log("页面高:"+screen.availHeight);        // 获取窗口文档显示区的宽高console.log("pageWidth:"+window.innerWidth);console.log("pageHeight:"+window.innerHeight);

navigator对象

//console.log(navigator.userAgent);// 判断浏览器function getBrowser(){           var explorer = navigator.userAgent,browser;           if(explorer.indexOf("MSIE")>-1){      browser = "IE";   }else if(explorer.indexOf("Chrome")>-1){      browser = "Chrome";   }else if(explorer.indexOf("Opera")>-1){      browser = "Opera";   }else if(explorer.indexOf("Safari")>-1){      browser = "Safari";   }           return browser;}       var browser = getBrowser();console.log("您当前使用的浏览器是:"+browser);       // 判断终端function isPc(){          var userAgentInfo = navigator.userAgent,      Agents = ["Andriod","iPhone","symbianOS","windows phone","iPad","iPod"],      flag = true,i;      console.log(userAgentInfo);           for(i=0;i<Agents.length;i++){  if(userAgentInfo.indexOf(Agents[i])>-1){         flag = false;     break;      }   }           return flag;}       var isPcs = isPc();console.log(isPcs);

本文来自 js教程 栏目,欢迎学习!

以上就是JS中BOM操作知识点的详细内容,更多请关注其它相关文章!


  • 上一条:
    CSS浮动怎么做
    下一条:
    JS事件之自建函数bind()与兼容性问题解决
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 使用 Alpine.js 排序插件对元素进行排序(0个评论)
    • 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
    • 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
    • 使用mock-server实现模拟接口对接流程步骤(0个评论)
    • vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2019-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客