自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1994)
  • 收藏
  • 关注

原创 javascript基础从小白到高手系列六百九十八:DOM

文档对象模型(DOM,Document Object Model)是 HTML 和 XML 文档的编程接口。DOM 表示 由多层节点构成的文档,通过它开发者可以添加、删除和修改页面的各个部分。脱胎于网景和微软早 期的动态 HTML(DHTML,Dynamic HTML),DOM 现在是真正跨平台、语言无关的表示和操作网页 的方式。DOM Level 1 在 1998 年成为 W3C 推荐标准,提供了基本文档结构和查询的接口。

2024-04-30 08:07:43 74

原创 javascript基础从小白到高手系列六百九十七:硬件

浏览器检测硬件的能力相当有限。不过,navigator 对象还是通过一些属性提供了基本信息。

2024-04-30 08:06:57 65

原创 javascript基础从小白到高手系列六百九十六:Battery Status API

当然,到底怎么才算联网取决于浏览器与系统实现。有些浏览器可能会认为只要连接到局域网就算 “在线”,而不管是否真正接入了互联网。navigator 对象还暴露了 NetworkInformation API,可以通过 navigator.connection 属性使用。这个 API 提供了一些只读属性,并为连接属性变化事件处理程序定义了一个事件对象。以下是 NetworkInformation API 暴露的属性。

2024-04-30 08:06:23 159

原创 javascript基础从小白到高手系列六百九十五:注册处理程序

在这个例子中,hasIEPlugin()函数接收一个 DOM 标识符参数。为检测插件,这个函数会使用传 入的标识符创建一个新 ActiveXObject 实例。相应代码封装在一个 try/catch 语句中,因此如果创 建的插件不存在则会抛出错误。如果创建成功则返回 true,如果失败则在 catch 块中返回 false。上 面的例子还演示了如何检测 Flash 和 QuickTime 插件。因为检测插件涉及两种方式,所以一般要针对特定插件写一个函数,而不是使用通常的检测函数。

2024-04-30 08:05:51 206

原创 javascript基础从小白到高手系列六百九十四:hasPlugin()方法

这个 hasPlugin()方法接收一个参数,即待检测插件的名称。IE 中的插件是实现为 COM 对象 的,由唯一的字符串标识。每个 MimeType 对象有 4 个属性:description 描述 MIME 类型,enabledPlugin 是 指向插件对象的指针,suffixes 是该 MIME 类型对应扩展名的逗号分隔的字符串,type 是完整的 MIME 类型字符串。而且,IE11 中的 ActiveXObject 也从 DOM 中隐身了,意味着 不能再用它来作为检测特性的手段。

2024-04-30 08:05:13 54

原创 javascript基础从小白到高手系列六百九十三:检测插件

检测浏览器是否安装了某个插件是开发中常见的需求。除 IE10 及更低版本外的浏览器,都可以通 过 plugins 数组来确定。这个数组中的每一项都包含如下属性。通常,name 属性包含识别插件所需的必要信息,尽管不是特别准确。检测插件就是遍历浏览器中。navigator 对象的属性通常用于确定浏览器的类型。 length:由当前插件处理的 MIME 类型数量。// 插件检测,IE10 及更低版本无效。 description:插件介绍。 filename:插件的文件名。 name:插件名称。

2024-04-30 08:04:32 64

原创 javascript基础从小白到高手系列六百九十二:navigator对象

最后一个修改地址的方法是 reload(),它能重新加载当前显示的页面。调用 reload()而不传参 数,页面会以最有效的方式重新加载。也就是说,如果页面自上次请求以来没有修改过,浏览器可能会 从缓存中加载页面。脚本中位于 reload()调用之后的代码可能执行也可能不执行,这取决于网络延迟和系统资源等因 素。为此,最好把 reload()作为最后一行代码。

2024-04-30 08:03:51 44

原创 javascript基础从小白到高手系列六百九十一:操作地址

在以前面提到的方式修改 URL 之后,浏览器历史记录中就会增加相应的记录。如果给 location.href 或 window.location 设置一个 URL,也会以同一个 URL 值调用 assign()方法。此时,“后退”按钮是禁用状态,即不能 返回这个示例页面,除非手动输入完整的 URL。除了 hash 之外,只要修改 location 的一个属性,就会导致页面重新加载新 URL。在这 3 种修改浏览器地址的方法中,设置 location.href 是最常见的。

2024-04-30 08:02:59 41

原创 javascript基础从小白到高手系列六百九十:URLSearchParams函数

接着,先把查询字符串按照&分割成数组, 2 每个元素的形式为 name=value。for 循环迭代这个数组,将每一个元素按照=分割成数组,这个数组 第一项是参数名,第二项是参数值。参数名和参数值在使用 decodeURIComponent()解码后(这是因为 查询字符串通常是被编码后的格式)分别保存在 name 和 value 变量中。给 URLSearchParams 构造函数传入一个查询字符串,就可以创建一个实例。现在,查询字符串中的每个参数都是返回对象的一个属性,这样使用起来就方便了。

2024-04-30 08:01:44 55

原创 javascript基础从小白到高手系列六百八十九:location对象

location 是最有用的 BOM 对象之一,提供了当前窗口中加载文档的信息,以及通常的导航功能。这个对象独特的地方在于,它既是 window 的属性,也是 document 的属性。也就是说, window.location 和 document.location 指向同一个对象。location 对象不仅保存着当前加载文 档的信息,也保存着把 URL 解析为离散片段后能够通过属性访问的信息。这些解析后的属性在下表中 有详细说明(location 前缀是必需的)。

2024-04-30 08:01:09 43

原创 javascript基础从小白到高手系列六百八十八: alert()、confirm()和 prompt()方法

它接收一个要显示给用户的字符串。此外,这些对话框都是同步的模态对话框,即在它们显示的时候,代码会停止执行, 在它们消失以后,代码才会恢复执行。要知道用户单击了 OK 按钮还是 Cancel 按钮,可以判断 confirm()方法的返回值:true 表示单击 了 OK 按钮,false 表示单击了 Cancel 按钮或者通过单击某一角上的 X 图标关闭了确认框。如果网页中的脚本生成了两个或更多系统对话 框,则除第一个之外所有后续的对话框上都会显示一个复选框,如果用户选中则会禁用后续的弹框,直 到页面刷新。

2024-04-30 08:00:36 102

原创 javascript基础从小白到高手系列六百八十七:setInterval()

注意 这里的关键点是,第二个参数,也就是间隔时间,指的是向队列添加新任务之前等 待的时间。注意在使用 setTimeout()时,不一定要记录超时 ID,因为它会在条件满足时自动停止,否则会 自动设置另一个超时任务。setIntervale()在实践中很少会在 生产环境下使用,因为一个任务结束和下一个任务开始之间的时间间隔是无法保证的,有些循环定时任。setInterval()同样可以接收两个参数:要执行的代码(字符 串或函数),以及把下一次执行定时代码的任务添加到队列要等待的时间(毫秒)。

2024-04-30 07:59:57 21

原创 javascript基础从小白到高手系列六百八十六:弹窗屏蔽程序

所有现代浏览器都内置了屏蔽弹窗的程序,因此大多数意料之外的弹窗都会被屏蔽。在浏览器屏蔽 弹窗时,可能会发生一些事。如果浏览器内置的弹窗屏蔽程序阻止了弹窗,那么 window.open()很可 能会返回 null。在浏览器扩展或其他程序屏蔽弹窗时,window.open()通常会抛出错误。

2024-04-30 07:59:24 221

原创 javascript基础从小白到高手系列六百八十五:跨上下文消息

JSON.stringify(),通过postMessage()传过去之后,再在onmessage 事件处理程序中调用。大多数情况下,event.source 是某个window 对象的代理,而非实际的window 对象。postMessage()方法接收3 个参数:消息、表示目标接收源的字符串和可选的可传输对象的数组(只。首先,postMessage()的第一个参数的最初实现始终是一个字符串。接收消息之后验证发送窗口的源是非常重要的。通过使用XDM 与内嵌窗格中的网页通信,可以保证包含页面的安全。

2024-04-30 07:58:52 77

原创 javascript基础从小白到高手系列六百八十四:原子Futex 操作与加锁

Atomics.notify()释放其中一个等待的线程。Atomics.wait()和Atomics.notify()通过示例很容易理解。因为是使用0 来初始化SharedArrayBuffer,所以每个工作线程都会到达Atomics.wait()并停。Atomics.isLockFree()是一个优化原语。在不调用代理在组成数据的n字节之外获得锁的情况下可以执行,则Atomics.isLockFree(n)Atomics.isLockFree(4)始终返回true,因为在所有已知的相关硬件上都是支持的。

2024-04-30 07:58:06 256

原创 javascript基础从小白到高手系列六百八十三:原子读和写

如果这个值被修改了,那么执行写操作将会破坏其他线程计算的值。除了读写缓冲区的值,Atomics.load()和Atomics.store()还可以构建“代码围栏”。引擎保证非原子指令可以相对于load()或store()本地重排,但这个重排不会侵犯原子读/写的边界。 使用原子读或原子写保证所有指令(包括原子和非原子指令)都不会相对原子读/写重新排序。这意味着位于原子读/写之前的所有指令会在原子读/写发生前完成,而位于原子读/写之后的所有。// 非原子读可以保证在原子写完成后发生,因此这里一定会读到2。

2024-04-29 08:26:10 280

原创 javascript基础从小白到高手系列六百八十二:原子操作基础

其中多数方法以一个TypedArray 实例(一个SharedArrayBuffer 的引用)作为第一个参数,以相。任何全局上下文中都有Atomics 对象,这个对象上暴露了用于执行线程安全操作的一套静态方法,关操作数作为后续参数。

2024-04-29 08:25:24 227

原创 javascript基础从小白到高手系列六百八十一:JavaScript API

原子操作也让并发访问。Cryptography API 和Notifications API,只为一个特性定义了一个API。API 可以通过腻子脚本来模拟,但腻子脚本通常会带来性能问题,此外也会增加网站JavaScript 代码的。一些规范如HTML5,定义了一批增强已有标准的API 和浏览器特性。随着Web 浏览器能力的增加,其复杂性也在迅速增加。最终,是否使用这些比较新的API 还要看项目是支持更多浏览器,还是要采用更多现代特性。很稳定的原子行为基础之上,构建复杂的多线程JavaScript 程序。

2024-04-29 08:24:52 212

原创 javascript基础从小白到高手系列六百八十:通过表单提交富文本

在表单提交之前,从内嵌窗格或contenteditable 元素中提取出HTML 并插入隐藏字段中。这里,代码使用文档主体的innerHTML 属性取得了内嵌窗格的HTML,然后将其插入名为"comments"因为富文本编辑是在内嵌窗格中或通过为元素指定contenteditable 属性实现的,而不是在表单。这意味着要把富文本编辑的结果提交给服务器,默认情况下,可以切换文本的粗体、斜体样式,也可以使用剪贴板功。使用标准的DOM技术,可以为选择框添加或移除选项,也可以将选项从一个选择框移动到另一个选择。

2024-04-29 08:24:19 190

原创 javascript基础从小白到高手系列六百七十九:富文件选择

现比execCommand()更细粒度的控制,因为可以直接对选中文本的DOM 内容进行操作。IE8 及更早版本不支持DOM 范围,不过它们允许通过专有的selection 对象操作选中的文本。在内嵌窗格中使用getSelection()方法,可以获得富文本编辑器的选区。 collapse(node, offset):将选区折叠到给定节点中给定的文本偏移处。 getRangeAt(index):返回选区中指定索引处的DOM范围。 removeRange(range):从选区中移除指定的DOM 范围。

2024-04-29 08:23:38 256

原创 javascript基础从小白到高手系列六百七十八:与富文本交互

与富文本编辑器交互的主要方法是使用document.execCommand()。这个方法在文档上执行既定的命令,可以实现大多数格式化任务。document.execCommand()可以接收3 个参数:要执行的命令、表示浏览器是否为命令提供用户界面的布尔值和执行命令必需的值(如果不需要则为null)。为跨浏览器兼容,第二个参数应该始终为false,因为Firefox 会在其为true 时抛出错误。不同浏览器支持的命令也不一样。下表列出了最常用的命令。命 令 值(第三个参数) 说 明。

2024-04-29 08:22:54 484

原创 javascript基础从小白到高手系列六百七十七:富文本编辑

还有一种处理富文本的方式,也是IE 最早实现的,即指定contenteditable 属性。可以给页面中的任何元素指定contenteditable 属性,然后该元素会立即被用户编辑。这种方式更受欢迎,因为。contentEditable 属性有3 个可能的值:"true"表示开启,"false"表示关闭,"inherit"表示。通过designMode 属性,可以将这个空白文档变成可以编辑的,实际编辑的则是元素。都会变成可以编辑的(显示插入光标),从而可以像使用文字处理程序一样编辑文本,通过键盘将文本。

2024-04-29 08:22:13 114

原创 javascript基础从小白到高手系列六百七十六:移动和重排选项

为此需要使用DOM 合规的浏览器支持的hasAttribute()方法,而在IE8 及更早版本中要使用值的specified 属性。不过,要把选项移动到最后,还是appendChild()方法比较方便。项,然后以相同文本和值创建新选项,再将新选项添加到第二个选择框。个方法传入文档中已有的元素,则该元素会先从其父元素中移除,然后再插入指定位置。遍历选择框的每个选项时,只要有选项被选中,就将其添加到结果字符串。入字段在提交表单时包含文件的内容,但这些字段通常无法转换,因而也要排除在序列化之外。

2024-04-29 08:20:56 210

原创 javascript基础从小白到高手系列六百七十五:添加选项

以上代码创建了一个新的元素,使用文本节点添加文本,设置其value 属性,然后将其添加到选择框。IE8 及更早版本对add()方法的实现稍有不同,其第二个参数是可选的,如果要传入则必须是一个索引。与添加选项类似,移除选项的方法也不止一种。另一种添加新选项的方式是使用选择框的add()方法。的新选项和要添加到其前面的参考选项。值,表示要在其前面添加新选项的选项。以上代码可以在所有版本的IE 及DOM 合规的浏览器中使用。以使用appendChild()方法把这样创建的选项添加到选择框。

2024-04-29 08:20:18 216

原创 javascript基础从小白到高手系列六百七十四:选项处理

设置selectedIndex会移除所有选项,只选择指定的项,而获取selectedIndex 只会返回选中的第一项的索引。与selectedIndex 不同,设置选项的selected 属性不会在多选时移除其他选项,从而可以动态。环迭代所有选项,检测每个选项的selected 属性。对于只允许选择一项的选择框,获取选项最简单的方式是使用选择框的selectedIndex 属性,如。如果修改单选框中选项的selected 属性,则其他选项会被移除。这个函数会返回给定选择框中所有选中项的数组。

2024-04-29 08:19:47 105

原创 javascript基础从小白到高手系列六百七十三:禁用验证

选择框的type 属性可能是"select-one"或"select-multiple",具体取决于multiple 属性。如果选中这个选择框中的第一项,则字段的值就是"Sunnyvale, CA"。 selectedIndex:选中项基于0 的索引值,如果没有选中项则为–1。 如果有一个选中项,且其value 属性有值,则选择框的值就是选中项value 属性的值。被选中,则字段的值是一个空字符串,因为该项的value 属性是空字符串。最后强调一下,选择框的change 事件与其他表单字段是不一样的。

2024-04-29 08:19:15 226

原创 javascript基础从小白到高手系列六百七十二:数值范围

入的,包括:“number”、“range”、“datetime”、“datetime-local”、“date”、“month”、“week” tooLong:如果字段值的长度超过了maxlength 属性指定的值则返回true。除了"email"和"url",HTML5 还定义了其他几种新的输入元素类型,它们都是期待某种数值输。都可以使用,如果字段值有效就会返回true,否则返回false。提到的约束条件,因此必填字段如果没有值就会被视为无效,而字段值不匹配pattern 属性也会被视。

2024-04-29 08:18:22 329

原创 javascript基础从小白到高手系列六百七十一:读取响应状态信息

克隆Response 对象的主要方式是使用clone()方法,这个方法会创建一个一模一样的副本,不。如果响应对象的bodyUsed 属性为true(即响应体已被读取),则不能再创建这个对象的副本。此外,通过创建带有原始响应体的Response 实例,可以执行伪克隆操作。对于重定向响应,这是最终的URL,非重定向响应就是它产生的。Response 对象包含一组只读属性,描述了请求完成后的状态,如下表所示。 error:表示响应对象是通过Response.error()创建的。可能是下列字符串值之一。

2024-04-29 08:17:32 277

原创 javascript基础从小白到高手系列六百七十:Response 对象

Response 类还有两个用于生成Response 对象的静态方法:Response.redirect()和Response.Response 对象的期约,这个Response 对象代表实际的HTTP 响应。另一个静态方法Response.error()用于产生表示网络错误的Response 对象(网络错误会导致。还可以接收一个可选的init 对象,这个对象可以包含下表所列的键和值。大多数情况下,产生Response 对象的主要方式是调用fetch(),它返回一个最后会解决为。用响应体的不同方式。

2024-04-29 08:17:00 338

原创 javascript基础从小白到高手系列六百六十九:克隆Request 对象

Fetch API 提供了两种不太一样的方式用于创建Request 对象的副本:使用Request 构造函数和使。关键在于,通过fetch 使用Request 会将请求体标记为已使用。要想基于包含请求体的相同Request 对象多次调用fetch(),必须在第一次发送fetch()请求前。第二种克隆Request 对象的方式是使用clone()方法,这个方法会创建一模一样的副本,任何值。如果请求对象的bodyUsed 属性为true(即请求体已被读取),那么上述任何一种方式都不能用来。创建这个对象的副本。

2024-04-29 08:16:23 258

原创 javascript基础从小白到高手系列六百六十八:与富文本交互

与富文本编辑器交互的主要方法是使用document.execCommand()。这个方法在文档上执行既定的命令,可以实现大多数格式化任务。document.execCommand()可以接收3 个参数:要执行的命令、表示浏览器是否为命令提供用户界面的布尔值和执行命令必需的值(如果不需要则为null)。为跨浏览器兼容,第二个参数应该始终为false,因为Firefox 会在其为true 时抛出错误。不同浏览器支持的命令也不一样。下表列出了最常用的命令。命 令 值(第三个参数) 说 明。

2024-04-28 10:31:41 698

原创 javascript基础从小白到高手系列六百六十七:富文本编辑

还有一种处理富文本的方式,也是IE 最早实现的,即指定contenteditable 属性。可以给页面中的任何元素指定contenteditable 属性,然后该元素会立即被用户编辑。这种方式更受欢迎,因为。contentEditable 属性有3 个可能的值:"true"表示开启,"false"表示关闭,"inherit"表示。通过designMode 属性,可以将这个空白文档变成可以编辑的,实际编辑的则是元素。都会变成可以编辑的(显示插入光标),从而可以像使用文字处理程序一样编辑文本,通过键盘将文本。

2024-04-28 10:30:47 261

原创 javascript基础从小白到高手系列六百六十六:移动和重排选项

为此需要使用DOM 合规的浏览器支持的hasAttribute()方法,而在IE8 及更早版本中要使用值的specified 属性。不过,要把选项移动到最后,还是appendChild()方法比较方便。项,然后以相同文本和值创建新选项,再将新选项添加到第二个选择框。个方法传入文档中已有的元素,则该元素会先从其父元素中移除,然后再插入指定位置。遍历选择框的每个选项时,只要有选项被选中,就将其添加到结果字符串。入字段在提交表单时包含文件的内容,但这些字段通常无法转换,因而也要排除在序列化之外。

2024-04-28 10:30:13 178

原创 javascript基础从小白到高手系列六百六十五:添加选项

以上代码创建了一个新的元素,使用文本节点添加文本,设置其value 属性,然后将其添加到选择框。IE8 及更早版本对add()方法的实现稍有不同,其第二个参数是可选的,如果要传入则必须是一个索引。与添加选项类似,移除选项的方法也不止一种。另一种添加新选项的方式是使用选择框的add()方法。的新选项和要添加到其前面的参考选项。值,表示要在其前面添加新选项的选项。以上代码可以在所有版本的IE 及DOM 合规的浏览器中使用。以使用appendChild()方法把这样创建的选项添加到选择框。

2024-04-28 10:29:42 323

原创 javascript基础从小白到高手系列六百六十四:选项处理

设置selectedIndex会移除所有选项,只选择指定的项,而获取selectedIndex 只会返回选中的第一项的索引。与selectedIndex 不同,设置选项的selected 属性不会在多选时移除其他选项,从而可以动态。环迭代所有选项,检测每个选项的selected 属性。对于只允许选择一项的选择框,获取选项最简单的方式是使用选择框的selectedIndex 属性,如。如果修改单选框中选项的selected 属性,则其他选项会被移除。这个函数会返回给定选择框中所有选中项的数组。

2024-04-28 10:29:11 200

原创 javascript基础从小白到高手系列六百六十三:禁用验证

选择框的type 属性可能是"select-one"或"select-multiple",具体取决于multiple 属性。如果选中这个选择框中的第一项,则字段的值就是"Sunnyvale, CA"。 selectedIndex:选中项基于0 的索引值,如果没有选中项则为–1。 如果有一个选中项,且其value 属性有值,则选择框的值就是选中项value 属性的值。被选中,则字段的值是一个空字符串,因为该项的value 属性是空字符串。最后强调一下,选择框的change 事件与其他表单字段是不一样的。

2024-04-28 10:28:41 171

原创 javascript基础从小白到高手系列六百六十二:修饰键

relatedTarget 属性,但提供了其他的可以访问到相关元素的属性。和mouseout 事件发生时才包含值,其他所有事件的这个属性的值都是null。对mouseover 和mouseout 事件而言,还存在与事件相关的其他元素。时被按下的修饰键的名称。光标的元素,相关元素是失去光标的元素。类似地,对mouseout 事件来说,事件的主要目标是失去光。元素上会触发mouseout 事件,相关元素为元素。虽然鼠标事件主要是通过鼠标触发的,但有时候要确定用户想实现的操作,还要考虑键盘按键的状。

2024-04-28 10:28:07 297

原创 javascript基础从小白到高手系列六百六十一:进度事件

每次请求都会首先触发loadstart 事件,之后是一个或多个progress 事件,接着是error、abort。每次触发时,onprogress 事件处理程序都会收到event 对象,其target 属性是XHR 对象,且。onload 事件处理程序会收到一个event 对象,其target 属性设置为XHR 实例,在这个实例上。Mozilla 在XHR 对象上另一个创新是progress 事件,在浏览器接收数据期间,这个事件会反复触。只要是从服务器收到响应,无论状态码是什么,都会触发load 事件。

2024-04-28 10:27:37 185

原创 javascript基础从小白到高手系列六百六十:XMLHttpRequest Level 2

XMLHttpRequest Level 1 只是把已经存在的XHR 对象的实现细节明确了一下。Firefox 首先引入了overrideMimeType()方法用于重写XHR 响应的MIME 类型。时间且在该时间过后没有收到响应时,XHR 对象就会触发timeout 事件,调用ontimeout 事件处理。IE8 给XHR 对象增加了一个timeout 属性,用于表示发送请求后等待多少毫秒,如果响应不成功。假设服务器实际发送了XML 数据,但响应头设置的MIME 类型是text/plain。

2024-04-28 10:27:06 352

原创 javascript基础从小白到高手系列六百五十九:GET 请求

假如没有发送Content-Type 头部,PHP 的全局$_POST 变量中就不会包含数据,而需要通过。在这个函数中,来自ID 为"user-info"的表单中的数据被序列化之后发送给了服务器。请求体中携带提交的数据,而GET 请求则不然。POST 请求的请求体可以包含非常多的数据,而且数据。第二个最常用的请求是POST 请求,用于向服务器发送应该保存的数据。步是创建对应格式的字符串。最常用的请求方法是GET 请求,用于向服务器查询某些信息。默认情况下,对服务器而言,POST 请求与提交表单是不一样的。

2024-04-28 10:26:30 355

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除