BOM一般是操作网页之间的操作,DOM是操作html等节点的操作

浏览器对象模型(BOM)可以使我们通过JS来操作浏览器,在BOM中为我们提供了一组对象,用来完成对浏览器的操作,常见的BOM对象如下:
这些BOM对象在浏览器中都是作为window对象的属性保存的,可以通过window对象来使用,也可以直接使用。

window.属性名= "属性值"
示例:
window.location="login.html" ;

confirm():弹出一个确认对话框
confirm()与alert ()、 prompt()区别:
alert( ):一个参数,仅显示警告对话框的消息,无返回值,不能对脚本产生任何改变
prompt( ):两个参数,输入对话框,用来提示用户输入一些信息,单击“取消”按钮则返回null,单击“确定”按钮则返回用户输入的值,常用于收集用户关于特定问题而反馈的信息
confirm( ):一个参数,确认对话框,显示提示对话框的消息、“确定”按钮和“取消”按钮,单击“确定”按钮返回true,单击“取消”按钮返回false,因此与if-else语句搭配使用
示例:
var color=window.prompt("请输入颜色");
document.write(color);
window.alert("alert");
window.confirm("confirm");



window.open("弹出窗口的url","窗口名称","窗口特征”)

注意:有的浏览器取消了自动弹出拦截功能,需要手动打开!!

go()方法的值:
go():可以用来跳转到指定的页面,它需要一个整数作为参数
特点:

Location对象中封装了浏览器的地址栏的信息,如果直接打印location,则可以获取到地址栏的信息(当前页面的完整路径)

示例:
<a href="javascript:location.href='flower.html'">查看鲜花详情</a>
<a href="javascript:location.reload()">刷新本页</a>
<a href="javascript:history.back()">返回主页面</a>

示例:
1.判断页面是否是链接进入
2.自动跳转到登录页面
var preUrl=document.referrer; //载入本页面文档的地址
if(preUrl==""){
document.write("<h2>您不是从领奖页面进入,5秒后将自动
跳转到登录页面</h2>");
setTimeout("javascript:location.href='login.html'",5000);
}

使用方法参考:
获取html节点的内容和标签,写入html标签时可以被识别为html元素:
<body>
<div id="myclock"><h1>innerHTML</h1></div>
</body>
<script >
var inner=document.getElementById("myclock");
console.log(inner.innerHTML);
</script>
可以看到输出

<body>
<div id="myclock"></div>
</body>
<script >
document.getElementById("myclock").innerHTML ="innerHTML
";
</script>
可以看到写入的html标签被识别

写入的文本时会原样输出
读取的文本,只能读取到文本内容,不能读取标签
innerText

<body>
<div id="myclock"></div>
</body>
<script >
document.getElementById("myclock").innerText ="innerText
";
</script>

定义格式:
var 日期对象=new Date(参数)
参数格式:MM DD,YYYY,hh:mm:ss
var today=new Date(); //返回当前日期和时间
var tdate=new Date("september 18,2022,14:58:12"); //设置时间


示例:
console.log("========操作时间=========")
var date = new Date();
console.log(date);
console.log(date.getFullYear());//获取当前日期对象的年份(四位数字年份)
console.log(date.getMonth());//获取当前日期对象的月份(0 ~ 11)
console.log(date.getDate());//获取当前日期对象的日数(1 ~ 31)
console.log(date.getHours());//获取当前日期对象的小时(0 ~ 23)
console.log(date.getMinutes());//获取当前日期对象的分钟(0 ~ 59)
console.log(date.getSeconds());//获取当前日期对象的秒钟(0 ~ 59)
console.log(date.getMilliseconds());//获取当前日期对象的毫秒(0 ~ 999)

案例:
使用Date对象的方法显示当前时间的小时、分钟和秒
function disptime(){
var today = new Date();
var hh = today.getHours();
var mm = today.getMinutes();
var ss = today.getSeconds();
document.getElementById("myclock").innerHTML="现在是:"+hh +":"+mm+": "+ss;
}
disptime();

发现制作的时钟特效示例中,时间不改变
由于时间在不停地走,所以应该每隔1秒调用显示时间的方法,需要配合定时函数使用:
格式:
setTimeout("调用的函数",等待的毫秒数)
示例:
//1秒(1000毫秒)之后执行函数disptime()一次
var myTime=setTimeout("disptime() ", 1000 );
案例:
三秒后提示
<input name="s" type="button" value="显示提示消息" onclick="timer()" />
function timer(){
var t=setTimeout("alert('3 seconds')",3000);
}
格式:
setInterval("调用的函数",间隔的毫秒数)
示例:
每隔1秒(1000毫秒)执行函数disptime()一次
var myTime=setInterval("disptime() ", 1000 );
如果要多次调用,使用setInterval()或者让disptime()自身再次调用setTimeout()
setTimeout()在等待指定时间后执行函数,且只执行一次;
setInterval()可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval方法会不停地调用函数,所以时钟例子使用setInterval();
格式:
clearTimeout(setTimeOut()返回的ID值)
示例:
var myTime=setTimeout("disptime() ", 1000 );
clearTimeout(myTime);
格式:
clearInterval(setInterval()返回的ID值)
示例:
var myTime=setInterval("disptime() ", 1000 );
clearInterval(myTime);

示例:
生成整数范围为2~99:
var iNum=Math.floor(Math.random()*98+2);
具体操作参考:
String对象的方法
