- 博客(6119)
- 收藏
- 关注
原创 javascript基础从小白到高手系列四千九百九十四:hasPlugin()方法
这个 hasPlugin()方法接收一个参数,即待检测插件的名称。IE 中的插件是实现为 COM 对象 的,由唯一的字符串标识。每个 MimeType 对象有 4 个属性:description 描述 MIME 类型,enabledPlugin 是 指向插件对象的指针,suffixes 是该 MIME 类型对应扩展名的逗号分隔的字符串,type 是完整的 MIME 类型字符串。而且,IE11 中的 ActiveXObject 也从 DOM 中隐身了,意味着 不能再用它来作为检测特性的手段。
2025-09-10 19:23:44
288
原创 javascript基础从小白到高手系列四千九百九十三:检测插件
检测浏览器是否安装了某个插件是开发中常见的需求。除 IE10 及更低版本外的浏览器,都可以通 过 plugins 数组来确定。这个数组中的每一项都包含如下属性。通常,name 属性包含识别插件所需的必要信息,尽管不是特别准确。检测插件就是遍历浏览器中。navigator 对象的属性通常用于确定浏览器的类型。 length:由当前插件处理的 MIME 类型数量。// 插件检测,IE10 及更低版本无效。 description:插件介绍。 filename:插件的文件名。 name:插件名称。
2025-09-10 19:23:11
405
原创 javascript基础从小白到高手系列四千九百九十二:navigator对象
最后一个修改地址的方法是 reload(),它能重新加载当前显示的页面。调用 reload()而不传参 数,页面会以最有效的方式重新加载。也就是说,如果页面自上次请求以来没有修改过,浏览器可能会 从缓存中加载页面。脚本中位于 reload()调用之后的代码可能执行也可能不执行,这取决于网络延迟和系统资源等因 素。为此,最好把 reload()作为最后一行代码。
2025-09-10 19:22:30
376
原创 javascript基础从小白到高手系列四千九百九十一:操作地址
在以前面提到的方式修改 URL 之后,浏览器历史记录中就会增加相应的记录。如果给 location.href 或 window.location 设置一个 URL,也会以同一个 URL 值调用 assign()方法。此时,“后退”按钮是禁用状态,即不能 返回这个示例页面,除非手动输入完整的 URL。除了 hash 之外,只要修改 location 的一个属性,就会导致页面重新加载新 URL。在这 3 种修改浏览器地址的方法中,设置 location.href 是最常见的。
2025-09-10 19:21:59
408
原创 javascript基础从小白到高手系列四千九百九十:URLSearchParams函数
接着,先把查询字符串按照&分割成数组, 2 每个元素的形式为 name=value。for 循环迭代这个数组,将每一个元素按照=分割成数组,这个数组 第一项是参数名,第二项是参数值。参数名和参数值在使用 decodeURIComponent()解码后(这是因为 查询字符串通常是被编码后的格式)分别保存在 name 和 value 变量中。给 URLSearchParams 构造函数传入一个查询字符串,就可以创建一个实例。现在,查询字符串中的每个参数都是返回对象的一个属性,这样使用起来就方便了。
2025-09-10 19:21:28
341
原创 javascript基础从小白到高手系列四千九百八十九:location对象
location 是最有用的 BOM 对象之一,提供了当前窗口中加载文档的信息,以及通常的导航功能。这个对象独特的地方在于,它既是 window 的属性,也是 document 的属性。也就是说, window.location 和 document.location 指向同一个对象。location 对象不仅保存着当前加载文 档的信息,也保存着把 URL 解析为离散片段后能够通过属性访问的信息。这些解析后的属性在下表中 有详细说明(location 前缀是必需的)。
2025-09-10 19:20:53
300
原创 javascript基础从小白到高手系列四千九百八十七:setInterval()
注意 这里的关键点是,第二个参数,也就是间隔时间,指的是向队列添加新任务之前等 待的时间。注意在使用 setTimeout()时,不一定要记录超时 ID,因为它会在条件满足时自动停止,否则会 自动设置另一个超时任务。setIntervale()在实践中很少会在 生产环境下使用,因为一个任务结束和下一个任务开始之间的时间间隔是无法保证的,有些循环定时任。setInterval()同样可以接收两个参数:要执行的代码(字符 串或函数),以及把下一次执行定时代码的任务添加到队列要等待的时间(毫秒)。
2025-09-10 19:20:21
312
原创 javascript基础从小白到高手系列四千九百八十六:弹窗屏蔽程序
所有现代浏览器都内置了屏蔽弹窗的程序,因此大多数意料之外的弹窗都会被屏蔽。在浏览器屏蔽 弹窗时,可能会发生一些事。如果浏览器内置的弹窗屏蔽程序阻止了弹窗,那么 window.open()很可 能会返回 null。在浏览器扩展或其他程序屏蔽弹窗时,window.open()通常会抛出错误。
2025-09-10 19:19:31
373
原创 javascript基础从小白到高手系列四千九百八十五:跨上下文消息
JSON.stringify(),通过postMessage()传过去之后,再在onmessage 事件处理程序中调用。大多数情况下,event.source 是某个window 对象的代理,而非实际的window 对象。postMessage()方法接收3 个参数:消息、表示目标接收源的字符串和可选的可传输对象的数组(只。首先,postMessage()的第一个参数的最初实现始终是一个字符串。接收消息之后验证发送窗口的源是非常重要的。通过使用XDM 与内嵌窗格中的网页通信,可以保证包含页面的安全。
2025-09-10 19:18:29
358
原创 javascript基础从小白到高手系列四千九百八十三:原子读和写
如果这个值被修改了,那么执行写操作将会破坏其他线程计算的值。除了读写缓冲区的值,Atomics.load()和Atomics.store()还可以构建“代码围栏”。引擎保证非原子指令可以相对于load()或store()本地重排,但这个重排不会侵犯原子读/写的边界。 使用原子读或原子写保证所有指令(包括原子和非原子指令)都不会相对原子读/写重新排序。这意味着位于原子读/写之前的所有指令会在原子读/写发生前完成,而位于原子读/写之后的所有。// 非原子读可以保证在原子写完成后发生,因此这里一定会读到2。
2025-09-10 19:17:58
385
原创 javascript基础从小白到高手系列四千九百八十二:原子操作基础
其中多数方法以一个TypedArray 实例(一个SharedArrayBuffer 的引用)作为第一个参数,以相。任何全局上下文中都有Atomics 对象,这个对象上暴露了用于执行线程安全操作的一套静态方法,关操作数作为后续参数。
2025-09-10 19:17:28
226
原创 javascript基础从小白到高手系列四千九百八十一:JavaScript API
原子操作也让并发访问。Cryptography API 和Notifications API,只为一个特性定义了一个API。API 可以通过腻子脚本来模拟,但腻子脚本通常会带来性能问题,此外也会增加网站JavaScript 代码的。一些规范如HTML5,定义了一批增强已有标准的API 和浏览器特性。随着Web 浏览器能力的增加,其复杂性也在迅速增加。最终,是否使用这些比较新的API 还要看项目是支持更多浏览器,还是要采用更多现代特性。很稳定的原子行为基础之上,构建复杂的多线程JavaScript 程序。
2025-09-10 19:16:55
388
原创 javascript基础从小白到高手系列四千九百八十:通过表单提交富文本
在表单提交之前,从内嵌窗格或contenteditable 元素中提取出HTML 并插入隐藏字段中。这里,代码使用文档主体的innerHTML 属性取得了内嵌窗格的HTML,然后将其插入名为"comments"因为富文本编辑是在内嵌窗格中或通过为元素指定contenteditable 属性实现的,而不是在表单。这意味着要把富文本编辑的结果提交给服务器,默认情况下,可以切换文本的粗体、斜体样式,也可以使用剪贴板功。使用标准的DOM技术,可以为选择框添加或移除选项,也可以将选项从一个选择框移动到另一个选择。
2025-09-10 19:16:24
317
原创 javascript基础从小白到高手系列四千九百七十八:与富文本交互
与富文本编辑器交互的主要方法是使用document.execCommand()。这个方法在文档上执行既定的命令,可以实现大多数格式化任务。document.execCommand()可以接收3 个参数:要执行的命令、表示浏览器是否为命令提供用户界面的布尔值和执行命令必需的值(如果不需要则为null)。为跨浏览器兼容,第二个参数应该始终为false,因为Firefox 会在其为true 时抛出错误。不同浏览器支持的命令也不一样。下表列出了最常用的命令。命 令 值(第三个参数) 说 明。
2025-09-10 19:15:53
361
原创 javascript基础从小白到高手系列四千九百七十七:富文本编辑
还有一种处理富文本的方式,也是IE 最早实现的,即指定contenteditable 属性。可以给页面中的任何元素指定contenteditable 属性,然后该元素会立即被用户编辑。这种方式更受欢迎,因为。contentEditable 属性有3 个可能的值:"true"表示开启,"false"表示关闭,"inherit"表示。通过designMode 属性,可以将这个空白文档变成可以编辑的,实际编辑的则是元素。都会变成可以编辑的(显示插入光标),从而可以像使用文字处理程序一样编辑文本,通过键盘将文本。
2025-09-10 19:12:53
239
原创 javascript基础从小白到高手系列四千九百七十六:移动和重排选项
为此需要使用DOM 合规的浏览器支持的hasAttribute()方法,而在IE8 及更早版本中要使用值的specified 属性。不过,要把选项移动到最后,还是appendChild()方法比较方便。项,然后以相同文本和值创建新选项,再将新选项添加到第二个选择框。个方法传入文档中已有的元素,则该元素会先从其父元素中移除,然后再插入指定位置。遍历选择框的每个选项时,只要有选项被选中,就将其添加到结果字符串。入字段在提交表单时包含文件的内容,但这些字段通常无法转换,因而也要排除在序列化之外。
2025-09-06 11:08:56
246
原创 javascript基础从小白到高手系列四千九百七十五:添加选项
以上代码创建了一个新的元素,使用文本节点添加文本,设置其value 属性,然后将其添加到选择框。IE8 及更早版本对add()方法的实现稍有不同,其第二个参数是可选的,如果要传入则必须是一个索引。与添加选项类似,移除选项的方法也不止一种。另一种添加新选项的方式是使用选择框的add()方法。的新选项和要添加到其前面的参考选项。值,表示要在其前面添加新选项的选项。以上代码可以在所有版本的IE 及DOM 合规的浏览器中使用。以使用appendChild()方法把这样创建的选项添加到选择框。
2025-09-06 11:08:26
299
原创 javascript基础从小白到高手系列四千九百七十四:选项处理
设置selectedIndex会移除所有选项,只选择指定的项,而获取selectedIndex 只会返回选中的第一项的索引。与selectedIndex 不同,设置选项的selected 属性不会在多选时移除其他选项,从而可以动态。环迭代所有选项,检测每个选项的selected 属性。对于只允许选择一项的选择框,获取选项最简单的方式是使用选择框的selectedIndex 属性,如。如果修改单选框中选项的selected 属性,则其他选项会被移除。这个函数会返回给定选择框中所有选中项的数组。
2025-09-06 11:07:50
227
原创 javascript基础从小白到高手系列四千九百七十二:数值范围
入的,包括:“number”、“range”、“datetime”、“datetime-local”、“date”、“month”、“week” tooLong:如果字段值的长度超过了maxlength 属性指定的值则返回true。除了"email"和"url",HTML5 还定义了其他几种新的输入元素类型,它们都是期待某种数值输。都可以使用,如果字段值有效就会返回true,否则返回false。提到的约束条件,因此必填字段如果没有值就会被视为无效,而字段值不匹配pattern 属性也会被视。
2025-09-06 11:07:15
329
原创 javascript基础从小白到高手系列四千九百七十一:读取响应状态信息
克隆Response 对象的主要方式是使用clone()方法,这个方法会创建一个一模一样的副本,不。如果响应对象的bodyUsed 属性为true(即响应体已被读取),则不能再创建这个对象的副本。此外,通过创建带有原始响应体的Response 实例,可以执行伪克隆操作。对于重定向响应,这是最终的URL,非重定向响应就是它产生的。Response 对象包含一组只读属性,描述了请求完成后的状态,如下表所示。 error:表示响应对象是通过Response.error()创建的。可能是下列字符串值之一。
2025-09-06 11:06:44
389
原创 javascript基础从小白到高手系列四千九百七十:Response 对象
Response 类还有两个用于生成Response 对象的静态方法:Response.redirect()和Response.Response 对象的期约,这个Response 对象代表实际的HTTP 响应。另一个静态方法Response.error()用于产生表示网络错误的Response 对象(网络错误会导致。还可以接收一个可选的init 对象,这个对象可以包含下表所列的键和值。大多数情况下,产生Response 对象的主要方式是调用fetch(),它返回一个最后会解决为。用响应体的不同方式。
2025-09-06 11:06:07
410
原创 javascript基础从小白到高手系列四千九百六十九:克隆Request 对象
Fetch API 提供了两种不太一样的方式用于创建Request 对象的副本:使用Request 构造函数和使。关键在于,通过fetch 使用Request 会将请求体标记为已使用。要想基于包含请求体的相同Request 对象多次调用fetch(),必须在第一次发送fetch()请求前。第二种克隆Request 对象的方式是使用clone()方法,这个方法会创建一模一样的副本,任何值。如果请求对象的bodyUsed 属性为true(即请求体已被读取),那么上述任何一种方式都不能用来。创建这个对象的副本。
2025-09-06 11:05:29
254
原创 javascript基础从小白到高手系列四千九百六十八:与富文本交互
与富文本编辑器交互的主要方法是使用document.execCommand()。这个方法在文档上执行既定的命令,可以实现大多数格式化任务。document.execCommand()可以接收3 个参数:要执行的命令、表示浏览器是否为命令提供用户界面的布尔值和执行命令必需的值(如果不需要则为null)。为跨浏览器兼容,第二个参数应该始终为false,因为Firefox 会在其为true 时抛出错误。不同浏览器支持的命令也不一样。下表列出了最常用的命令。命 令 值(第三个参数) 说 明。
2025-09-06 11:04:33
433
原创 javascript基础从小白到高手系列四千九百六十六:移动和重排选项
为此需要使用DOM 合规的浏览器支持的hasAttribute()方法,而在IE8 及更早版本中要使用值的specified 属性。不过,要把选项移动到最后,还是appendChild()方法比较方便。项,然后以相同文本和值创建新选项,再将新选项添加到第二个选择框。个方法传入文档中已有的元素,则该元素会先从其父元素中移除,然后再插入指定位置。遍历选择框的每个选项时,只要有选项被选中,就将其添加到结果字符串。入字段在提交表单时包含文件的内容,但这些字段通常无法转换,因而也要排除在序列化之外。
2025-09-06 11:04:02
411
原创 javascript基础从小白到高手系列四千九百六十五:添加选项
以上代码创建了一个新的元素,使用文本节点添加文本,设置其value 属性,然后将其添加到选择框。IE8 及更早版本对add()方法的实现稍有不同,其第二个参数是可选的,如果要传入则必须是一个索引。与添加选项类似,移除选项的方法也不止一种。另一种添加新选项的方式是使用选择框的add()方法。的新选项和要添加到其前面的参考选项。值,表示要在其前面添加新选项的选项。以上代码可以在所有版本的IE 及DOM 合规的浏览器中使用。以使用appendChild()方法把这样创建的选项添加到选择框。
2025-09-06 11:03:30
385
原创 javascript基础从小白到高手系列四千九百六十四:选项处理
设置selectedIndex会移除所有选项,只选择指定的项,而获取selectedIndex 只会返回选中的第一项的索引。与selectedIndex 不同,设置选项的selected 属性不会在多选时移除其他选项,从而可以动态。环迭代所有选项,检测每个选项的selected 属性。对于只允许选择一项的选择框,获取选项最简单的方式是使用选择框的selectedIndex 属性,如。如果修改单选框中选项的selected 属性,则其他选项会被移除。这个函数会返回给定选择框中所有选中项的数组。
2025-09-06 11:02:58
248
原创 javascript基础从小白到高手系列四千九百六十三:禁用验证
选择框的type 属性可能是"select-one"或"select-multiple",具体取决于multiple 属性。如果选中这个选择框中的第一项,则字段的值就是"Sunnyvale, CA"。 selectedIndex:选中项基于0 的索引值,如果没有选中项则为–1。 如果有一个选中项,且其value 属性有值,则选择框的值就是选中项value 属性的值。被选中,则字段的值是一个空字符串,因为该项的value 属性是空字符串。最后强调一下,选择框的change 事件与其他表单字段是不一样的。
2025-09-06 11:02:25
302
原创 javascript基础从小白到高手系列四千九百六十二:修饰键
relatedTarget 属性,但提供了其他的可以访问到相关元素的属性。和mouseout 事件发生时才包含值,其他所有事件的这个属性的值都是null。对mouseover 和mouseout 事件而言,还存在与事件相关的其他元素。时被按下的修饰键的名称。光标的元素,相关元素是失去光标的元素。类似地,对mouseout 事件来说,事件的主要目标是失去光。元素上会触发mouseout 事件,相关元素为元素。虽然鼠标事件主要是通过鼠标触发的,但有时候要确定用户想实现的操作,还要考虑键盘按键的状。
2025-09-06 11:01:54
394
原创 javascript基础从小白到高手系列四千九百六十一:进度事件
每次请求都会首先触发loadstart 事件,之后是一个或多个progress 事件,接着是error、abort。每次触发时,onprogress 事件处理程序都会收到event 对象,其target 属性是XHR 对象,且。onload 事件处理程序会收到一个event 对象,其target 属性设置为XHR 实例,在这个实例上。Mozilla 在XHR 对象上另一个创新是progress 事件,在浏览器接收数据期间,这个事件会反复触。只要是从服务器收到响应,无论状态码是什么,都会触发load 事件。
2025-09-06 11:01:21
382
原创 javascript基础从小白到高手系列四千九百六十:XMLHttpRequest Level 2
XMLHttpRequest Level 1 只是把已经存在的XHR 对象的实现细节明确了一下。Firefox 首先引入了overrideMimeType()方法用于重写XHR 响应的MIME 类型。时间且在该时间过后没有收到响应时,XHR 对象就会触发timeout 事件,调用ontimeout 事件处理。IE8 给XHR 对象增加了一个timeout 属性,用于表示发送请求后等待多少毫秒,如果响应不成功。假设服务器实际发送了XML 数据,但响应头设置的MIME 类型是text/plain。
2025-09-06 10:55:10
291
原创 javascript基础从小白到高手系列四千九百五十九:GET 请求
假如没有发送Content-Type 头部,PHP 的全局$_POST 变量中就不会包含数据,而需要通过。在这个函数中,来自ID 为"user-info"的表单中的数据被序列化之后发送给了服务器。请求体中携带提交的数据,而GET 请求则不然。POST 请求的请求体可以包含非常多的数据,而且数据。第二个最常用的请求是POST 请求,用于向服务器发送应该保存的数据。步是创建对应格式的字符串。最常用的请求方法是GET 请求,用于向服务器查询某些信息。默认情况下,对服务器而言,POST 请求与提交表单是不一样的。
2025-09-01 19:47:30
415
原创 javascript基础从小白到高手系列四千九百五十八:HTTP 头部
为保证请求头部被发送,必须在open()之后、send()之前调用setRequestHeader(),如下面的例。的请求头部,可以使用setRequestHeader()方法。可以使用getResponseHeader()方法从XHR 对象获取响应头部,只要传入要获取头部的名称即。 Referer:发送请求的页面的URI。虽然不同浏览器发送的确切头部字段可能各不相同,但这些通常都是会发送的。通过解析以上头部字段的输出,就可以知道服务器发送的所有头部,而不需要单独去检查了。有响应头部的字符串。
2025-09-01 19:46:57
312
原创 javascript基础从小白到高手系列四千九百五十七:网络请求与远程资源
无论是什么响应内容类型,responseText 属性始终会保存响应体,而responseXML则对于非XML 数据是null。文章中描绘了一个被他称作Ajax(Asynchronous JavaScript+XML,即异步JavaScript 加XML)的技术。 responseXML:如果响应的内容类型是"text/xml"或"application/xml”,那就是包含响应。查readyState 的值。一般来说,我们唯一关心的readyState 值是4,表示数据已就绪。这个对象最早由微软发明,
2025-09-01 19:46:09
376
原创 javascript基础从小白到高手系列四千九百五十六:解析选项
于传给JSON.stringify()的起过滤作用的替代函数(replacer),这个函数被称为还原函数(reviver)。ECMAScript 5 定义了原生JSON 对象,用于将JavaScript 对象序列化为JSON 字符串,以及将JSON。JSON 字符串后,又被重新解析为一个对象bookCopy。JSON.parse()方法也可以接收一个额外的参数,这个函数会针对每个键/值对都调用一次。实际上它们的格式完全一样,即还原函数也接收两个参数,属性名(key)和属性值(value),另外也。
2025-09-01 19:45:40
243
原创 javascript基础从小白到高手系列四千九百五十五:Beacon API
因为Web Socket 使用了自定义协议,所以URL 方案(scheme)稍有变化:不能再使用http://或https://,因为Web Socket 使用了自定义协议,所以URL 方案(scheme)稍有变化:不能再使用http://或https://,调用close()之后,readyState 立即变为2(连接正在关闭),并会在关闭后变为3(连接已经关闭)。调用close()之后,readyState 立即变为2(连接正在关闭),并会在关闭后变为3(连接已经关闭)。在JavaScript。
2025-09-01 19:42:05
413
原创 javascript基础从小白到高手系列四千九百五十四:使用ReadableStream 主体
因为可以使用ReadableStream 创建Response 对象,所以就可以在读取流之后,将其通过管道。要将Uint8Array 转换为可读文本,可以将缓冲区传给TextDecoder,返回转换后的值。缓冲区的大小,以及浏览器是否等待缓冲区被填充后才将其推到流中,要根据JavaScript 运行时的。在这些例子中,当读取完Uint8Array 块之后,浏览器会将其标记为可以被垃圾回收。从TCP/IP 角度来看,传输的数据是以分块形式抵达端点的,而且速度受到网速的限制。此外,浏览器如果决定不等待网络,
2025-09-01 19:40:57
893
原创 javascript基础从小白到高手系列四千九百五十三:跨源资源共享
注意,服务器也可以在预检请求的。如果服务器决定响应请求,那么应该发送Access-Control-Allow-Origin 头部,包含相同的源;在这个请求发送后,服务器可以确定是否允许这种类型的请求。 Access-Control-Request-Headers:(可选)要使用的逗号分隔的自定义头部列表。对于简单的请求,比如GET 或POST 请求,没有自定义头部,而且请求体是text/plain 类型, Access-Control-Allow-Headers:服务器允许的头部(逗号分隔的列表)。
2025-09-01 19:40:26
316
原创 javascript基础从小白到高手系列四千九百五十二:进度事件
每次请求都会首先触发loadstart 事件,之后是一个或多个progress 事件,接着是error、abort。每次触发时,onprogress 事件处理程序都会收到event 对象,其target 属性是XHR 对象,且。onload 事件处理程序会收到一个event 对象,其target 属性设置为XHR 实例,在这个实例上。Mozilla 在XHR 对象上另一个创新是progress 事件,在浏览器接收数据期间,这个事件会反复触。只要是从服务器收到响应,无论状态码是什么,都会触发load 事件。
2025-09-01 19:39:48
270
原创 javascript基础从小白到高手系列四千九百五十一:使用cookie 的注意事项
每次请求都会首先触发loadstart 事件,之后是一个或多个progress 事件,接着是error、abort。每次触发时,onprogress 事件处理程序都会收到event 对象,其target 属性是XHR 对象,且。onload 事件处理程序会收到一个event 对象,其target 属性设置为XHR 实例,在这个实例上。Mozilla 在XHR 对象上另一个创新是progress 事件,在浏览器接收数据期间,这个事件会反复触。只要是从服务器收到响应,无论状态码是什么,都会触发load 事件。
2025-09-01 19:38:55
344
原创 javascript基础从小白到高手系列四千九百五十:子cookie
的名称,第二个元素是子cookie 的值。set()方法接收7 个参数:cookie 的名称、子cookie 的名称、子cookie 的值、可选的Date 对象用。用于取得所有子cookie,并以对象形式返回,对象的属性是子cookie 的名称,值是子cookie 的值。于设置cookie 的过期时间、可选的cookie 路径、可选的cookie 域和可选的布尔值secure 标志。setAll()方法接收6 个参数:cookie 的名称、包含所有子cookie 的对象,然后是set()方法中使。
2025-09-01 19:38:23
374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人