前端基础-JavaScript高级

BOM

浏览器对象模型 (BOM)

浏览器对象模型(Browser Object Model (BOM))尚无正式标准。

由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。


Window 对象

所有浏览器都支持 window 对象。它表示浏览器窗口。

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

全局变量是 window 对象的属性。

全局函数是 window 对象的方法。

甚至 HTML DOM 的 document 也是 window 对象的属性之一:

1
window.document.getElementById("header");

与此相同:

1
document.getElementById("header");

Window 尺寸

有三种方法能够确定浏览器窗口的尺寸。

对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:

  • window.innerHeight - 浏览器窗口的内部高度(包括滚动条)
  • window.innerWidth - 浏览器窗口的内部宽度(包括滚动条)

对于 Internet Explorer 8、7、6、5:

  • document.documentElement.clientHeight
  • document.documentElement.clientWidth

或者

  • document.body.clientHeight
  • document.body.clientWidth

其他 Window 方法

一些其他方法:

  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
  • window.moveTo() - 移动当前窗口
  • window.resizeTo() - 调整当前窗口的尺寸

Screen

location

document

代表当前页面HTML DOM数

1
2
3
4
5
6
document.title; //获取title

document.ElementById();//获取网页元素

document.cookie;//获取cookie
//服务器设置httpOnly

history

通过history可以操作页面的一些历史信息,包括前进后退等

1
2
history.back() //后退
history.forward //前进

DOM

HTML DOM (文档对象模型)

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被构造为对象的树:

HTML DOM 树

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

getElement

  • 通过 id 找到 HTML 元素 //ById
  • 通过标签名找到 HTML 元素 //ByTargetName
  • 通过类名找到 HTML 元素 //ByClassName

修改DOM节点和css

改变 HTML 输出流

JavaScript 能够创建动态的 HTML 内容:

今天的日期是: Sat May 20 2023 14:04:22 GMT+0800 (中国标准时间)

在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。

实例

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<body>

<script>
document.write(Date());
</script>

</body>
</html>

改变 HTML 内容

修改 HTML 内容的最简单的方法是使用 innerHTML 属性。

如需改变 HTML 元素的内容,请使用这个语法:

document.getElementById(id).innerHTML=新的 HTML

本例改变了

元素的内容:

1
2
3
4
5
6
7
8
9
10
11
<html>
<body>

<p id="p1">Hello World!</p>

<script>
document.getElementById("p1").innerHTML="新文本!";
</script>

</body>
</html>

改变 HTML 属性

如需改变 HTML 元素的属性,请使用这个语法:

document.getElementById(id).attribute=新属性值

本例改变了 元素的 src 属性:

实例

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<body>

<img id="image" src="smiley.gif">

<script>
document.getElementById("image").src="landscape.jpg";
</script>

</body>
</html>

删除节点

追加

创建新标签

表单验证

获取表单数据

1
2
3
4
5
6
7
8
9
10
11
12
var x = document.getElementById('id')//获取表单DOM
x.value //获取输入值

//单选框获取html源码
//<input type="radio" value="man" name="sex" id="boy"> man
//<input type="radio" value="woman" name="sex" id="girl">woman


<script>
var boy_raido = document.getElementById('boy');//获取DOM
boy_raido.checked//返回bool值
</script>

表单数据加密


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!