首页
学习
活动
专区
圈层
工具
发布

DOM

技巧:由于跨域安全限制,来自不同子域的页面无法通过JavaScript通信。而通过将每个页面的document.domain设置为相同的值,这些页面就可以互相访问对方包含的JavaScript对象了。...获取特性:dom.getAttribute("特性名") 如不存在返回null 注意有两类特殊的特性: style,返回CSS文本,通过属性访问则返回一个对象; onclick等事件处理程序,返回相应代码的字符串...Text类型 文本节点由Text类型表示,包含纯文本。纯文本可以包含转义后的HTML字符,但不能包含HTML代码。...(1)创建文本节点:document.createTextNode("文本") (2)规范化文本节点:在一个包含两个或多个文本节点元素上调用normalize(),则将会所有文本节点合并成一个节点。...元素的指针 tHead (若有)保存着对元素的指针 tFoot (若有)保存着对元素的指针 tBodies 一个所有元素的HTMLCollection

1.7K21

DOM

注意:并不是所有节点都有子节点,如果在不支持子节点的节点上调用了上述方法,将会导致错误发生。...技巧:由于跨域安全限制,来自不同子域的页面无法通过JavaScript通信。而通过将每个页面的document.domain设置为相同的值,这些页面就可以互相访问对方包含的JavaScript对象了。...: style,返回CSS文本,通过属性访问则返回一个对象;onclick等事件处理程序,返回相应代码的字符串。...Text类型 文本节点由Text类型表示,包含纯文本。纯文本可以包含转义后的HTML字符,但不能包含HTML代码。... (1)创建文本节点:document.createTextNode("文本") (2)规范化文本节点:在一个包含两个或多个文本节点元素上调用normalize

1.7K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「.vue文件的编译」2. 模板编译之 simple-html-parser.js

    这一次循环发现开始部分是文本如这里的\n ,获取文本后,指针直接往前推进到有的位置。...,也就是已经处理完的标签,对此不需要入栈 // 而 div } function parseEndTag(tagName, start, end) { //...起始字符是的情况,尝试判断是不是标签(开始标签还是结束标签) 如果是开始标签,则获取属性,直到开始标签结束 如果是结束标签,则将对应的开始标签从stack中弹出 其实内容是文本的情况,index指针往前推进文本的长度...,进入下次循环 特殊场景 不是很重要,暂遗留 自闭和标签 一元标签 style/script p\br 总结 另外重要的点是:在上面的遍历的过程中,会有三个核心的回调事件: start:当找到一个开始标签...,并且属性获取完,遇到开始标签的结束标志后,此时说明开始标签已经处理完了(该收集的信息也收集了),发布该事件 end:解析到结束标签时,此时这个整个标签解析完成了,发布该事件 chars:解析到文本时,

    1.4K40

    加点JavaScript魔法

    正如我上面提到的,这会影响悬停事件的行为,只要用户将鼠标从链接移动到弹出窗口本身,就会触发“鼠标移出”事件。...我可以扩展悬停事件以包含弹出窗口,就是将弹出窗口作为目标元素的子元素,这样悬停事件就会继承。通过查看文档中的弹出选项,可以通过在container选项中传递父元素来完成此操作。...div元素是块元素,有点像HTML文档中的段落,而元素是行内元素,它可以用于字词级别。本处,我决定使用元素,因为我要包装的元素也是行内元素。...针对弹出行为,你只想鼠标停留在元素上一段时间才能激活,以防当鼠标指针短暂通过元素但不停留在元素上时出现弹出闪烁。由于该事件不支持延迟,因此这是我需要自己实现的另一件事情。...elem变量包含悬停事件中的目标元素,它是包裹元素的元素。

    4.9K10

    JavaScript 编程精解 中文第三版 十五、处理事件

    ,而不是外部事件。...例如,如果一个节点中包含了很长的按钮列表,比较方便的处理方式是在外部节点上注册一个点击事件处理器,并根据事件的target属性来区分用户按下了哪个按钮,而不是为每个按钮都注册独立的事件处理器。...其效果是让我们的进度条呆在最顶上。 改变其宽度来指示当前进度。 在设置宽度时,我们使用%而不是px作为单位,使元素的大小相对于页面宽度。...创建工作单元的脚本通过Worker对象收发消息,而worker则直接向其全局作用域发送消息,或监听其消息。只有可以表示为 JSON 的值可以作为消息发送 - 另一方将接收它们的副本,而不是值本身。...您可以通过在其父元素上设置font-size CSS 属性(style.fontSize)来控制文本大小(emoji 是文本)。 请记住在该值中包含一个单位,例如像素(10px)。

    6.2K20

    JS快速入门(二)

    BOM 由一系列的相关对象组成,window 作为 BOM 的顶层对象,所有其他全局对象都是 window 的子对象,甚至 DOM 也是其子对象之一; window 对象作为 BOM 的顶级对象,本身包含一些全局属性和方法...说明 innerHTML 返回元素内包含的所有 HTML 内容(文本和标签),类型为字符串 innerText 和innerHTML类似,但是只返回文本 children 返回指定元素的子元素节点集合...可设置元素中的 html 内容 innerText 返回元素中的文本内容,通过赋值,可设置元素中的文本内容 document.write() 将 html 字符串写入到文档中 节点写入示例 innerHTML...') }) 事件属性赋值和事件监听区别 事件属性多次赋值,只会执行最后一次事件处理程序;事件监听可以添加多个监听器,执行多个事件处理程序; 事件属性赋值兼容 IE8 及以下浏览器,而事件监听最低兼容到...指针移出元素范围外触发一次 mouseover 指针移至元素或其子元素内,可能触发多次 mouseout 指针移出元素,或者移至其子元素内,可能触发多次 ps:事件处理程序中的 this 指代当前操作元素

    7.1K30

    一份vue面试知识点梳理清单

    最常见用法是结合v-bind做展开;$attrs本身不是响应式的,除非访问的属性本身是响应式对象。...内部采用深度递归的方式+双指针(头尾都加指针)的方式进行比较。...需要注意的是 ViewModel 所封装出来的数据模型包括视图的状态和行为两部分,而 Model 层的数据模型是只包含状态的,比如页面的这一块展示什么,而页面加载进来时发生什么,点击这一块发生什么,这一块滚动时发生什么这些都属于视图行为...$children:访问父 / 子实例(3)EventBus ($emit / $on) 适用于 父子、隔代、兄弟组件通信这种方法通过一个空的 Vue 实例作为中央事件总线(事件中心),用它来触发事件和监听事件...$listeners:包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。

    91550

    jQuery学习笔记

    p'); // 返回所有节点 ps.length; // 数一数页面有多少个节点 按class查找 var a = $('.red'); // 所有节点包含`class="red"`都将返回...').children()//查找所有直接子元素 $('div').find('li')//所有后代元素 操作DOM 修改Text和HTML jQuery对象的text()和html()方法分别获取节点的文本和原始...HTML文本 无参数调用text()是获取文本,传入参数就变成设置文本,HTML也是类似操作 操作表单 jQuery对象统一提供val()方法获取和设置对应的value属性、 和js中的 .value...prop()更适合操作标签本身的属性 修改DOM结构 append()和prepend()添加DOM节点 两者区别就是append()把DOM添加到最后,prepend()则把DOM添加到最前。...remove()删除DOM节点 事件 jQuery很多时候需要绑定事件来出发一些东西 on方法用来绑定一个事件 onclick //鼠标单机时触发 onmousemove //当鼠标指针移动到元素上时触发

    1.5K40

    前端学习(47)~DOM简介和DOM操作

    DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。 DOM就是由节点组成的。...("hehe")[0]; //取数组中的第一个元素 DOM访问关系的获取 DOM的节点并不是孤立的,因此可以通过DOM节点之间的相对关系对它们进行访问。...返回的是指定元素的子元素节点的集合。【重要】 它只返回HTML节点,甚至不返回文本节点。 在IE6/7/8中包含注释节点(在IE678中,注释节点不要写在里面)。...(老版本的火狐用textContent) 获取内容举例: 如果我们想获取innerHTML和innerText里的内容,看看会如何:(innerHTML会获取到标签本身,而innerText则不会)...修改内容举例:(innerHTML会修改标签本身,而innerText则不会) nodeType属性 nodeType == 1 表示的是元素节点(标签) 。

    2.3K30

    【Java 进阶篇】JavaScript DOM 编程:理解文档对象模型

    创建新元素 var newElement = document.createElement("div"); newElement.innerHTML = "新的元素"; 上面的代码将创建一个新的 div...,然后创建一个新的 div> 元素,并将其作为子元素添加到 “parent” 元素中。...; }); 2. mouseover 和 mouseout 事件 mouseover 事件在鼠标指针移入元素时触发,而 mouseout 事件在鼠标指针移出元素时触发。这些事件可用于创建悬停效果。...3. keydown 事件 keydown 事件在用户按下键盘上的键时触发。你可以使用这个事件来捕获用户的按键操作,例如输入文本或控制游戏。...通过获取元素、改变文本内容、操作样式、添加事件监听器和处理事件,你可以创建交互性丰富的网页。在深入学习 web 开发时,掌握 DOM 操作是必不可少的一部分。

    54320

    Javascript(2)-js进阶

    对于标签内容的操作,有三种方式 innerText:给指定标签的开始标签和结束标签中增加文本内容【非W3C标准】 textContent:dom操作,给标签的开始标签和结束标签中增加文本内容,W3C...扩展:所谓代码注入漏洞,是用于可以在客户端通过输入包含代码的字符串的方式,将带入注入到我们的网页中进行执行的过程 innerHTML的使用规则 对于数据的来源,完全信任的情况下使用它。...onselect 文本被选中。 onsubmit 确认按钮被点击。 onunload 用户退出页面。 键盘事件 属性/函数名称 描述 altKey 返回当事件被触发时,"ALT" 是否被按下。...button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针的水平坐标。 clientY 返回当事件被触发时,鼠标指针的垂直坐标。...screenX 返回当某个事件被触发时,鼠标指针的水平坐标。 screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。 shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。

    1.5K30

    21.jQuery

    可以通过一个可选的表达式进行筛选 parentsUntil 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止 prevAll 查找当前元素之前所有的同辈元素 prevUntil...; //设置p元素的html内容 $('p').text();            //返回p元素的文本内容 $("p").text("nick");        //设置p元素的文本内容...).mouseup() //元素上放松鼠标按钮时触发事件 $("p").mousemove() //当鼠标指针在指定的元素中移动时触发事件 $("p").mouseover() //当鼠标指针位于元素上方时触发事件...$("p").mouseout()  //当鼠标指针从元素上移开时触发事件 $(window).keydown() //当键盘或按钮被按下时触发事件 $(window).keypress(...").select() //当input 元素中的文本被选择时触发事件 $("form").submit() //当提交表单时触发事件 $(window).unload() //用户离开页面时

    3.3K90

    前端温习(二): Javascriput 核心对象 Document 对象

    ,如果是无法获取来源或是用户直接键入网址,而不是从其他网页点击,则返回一个空字符串。...比如,如果某个节点的 id 属性是 main,那么 document.getElementById("Main") 将返回 null,而不是指定节点。...】 返回所有指定标签的元素(搜索范围包括本身)。...createTextNode() 用来生成文本节点,参数为所要生成的文本节点的内容 // 新建一个div节点和一个文本节点,文本节点插入div节点 var newDiv = document.createElement...nextNode 方法先返回遍历器的内部指针所在的节点,然后会将指针移向下一个节点。所有成员遍历完成后,返回 null。previousNode 方法则是先将指针移向上一个节点,然后返回该节点。

    94831

    2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC以及 如何防御和修复(4)———— 作者:LJS

    div> 它产生以下 DOM 树,其中包含一个嵌套的表单元素: 这不是任何特定浏览器中的错误;它直接来自...这是一般的想法: 当你打开一个标签时,解析器需要使用表单元素指针打开的(在规范中是这样调用的)。如果指针不是null,则form无法创建元素。...生成的 DOM 树证明了我的观点:html style只有文本内容,而svg style像普通元素一样被解析。 继续前进,进行某种观察可能很诱人。...那么是不是所有svg和math标签包含的代码标签都不是html命名空间的呢。 不是的。html规范中有些元素被叫做MathML文本集成点和html集成点。这些元素的子元素都是html命名空间的。..." 直接执行插入的代码,因此,一般需要通过事件触发。通过上面的例子,可以发现依据事件触发的时机能进一步区分DOM XSS: 立即型,操作DOM时触发。

    31710

    初探富文本之文档diff算法

    我们首先可以思考一个问题,如果我们描述一段普通文本的话,那么大概直接输入就可以了,比如这篇文章本身底层数据结构就是纯文本,而内容格式实际上是由编译器通过词法和语法编译出来的,可以将其理解为序列化和反序列化...,那么针对粒度这个问题上不如我们换个角度思考,我们现在的是要处理富文本,而富文本就是带属性的文本,那么我们是不是就可以采用diff文本的算法,然后针对属性值进行额外的处理即可,这样就可以将粒度处理得很细...目前我们是想在A中直接得到对比视图,其实对比视图无非就是红色高亮表示删除,绿色高亮表示新增,而富文本本身可以直接携带格式,那么我们就可以直接借助于富文本能力来实现高亮功能。...,但是其他的行为例如点击事件等等同样会造成类似的问题,例如此时富文本中某个按钮的点击行为是用户自定义的,我们遮挡住按钮之后点击事件会被应用到我们的蒙层上,而蒙层并不会是嵌套在按钮之中的不会触发冒泡的行为...那么我们转变一个思路,如果我们将z-index调整到低于富文本层级的话,事件的问题是可以解决的,但是又造成了新的问题,如果此时富文本的内容本身是带有背景色的,此时我们再加入蒙层,那么我们蒙层的颜色是会被原本的背景色遮挡的

    34610

    Canvas简历编辑器-我的剪贴板里究竟有什么数据

    ,而不仅仅是纯文本,甚至于说从浏览器中复制内容到Office Word都可以保留格式,看起来是不是一件很神奇的事情,不过当我们了解到剪贴板的基本操作之后,就可以了解这其中的底层实现了。...,所以是不是能减少这部分消耗,那么当然是可以的,通常来说如果是在应用内直接直接粘贴的话,可以直接通过剪贴板的数据直接compose到当前的JSON即可,这样就可以更完整地保持内容以及减少对于HTML解析的消耗...,而如果此时进行粘贴是会触发document上的onPaste事件的,那么此时就有可能错误的将不应该粘贴的内容插入到剪贴板当中了,所以我们需要处理焦点,也就是说我们需要确定当前操作是在编辑器上的时候才触发...,所以需要将tabIndex="-1"属性赋予Canvas元素,这样就可以通过activeElement拿到焦点状态了,方案二是在Canvas上方再覆盖一层div,通过pointerEvents: none...来防止事件的鼠标指针事件,但是此时通过window.getSelection是可以拿到焦点元素的,此时只需要再判断焦点元素是不是设置的这个元素就可以了。

    28810

    事件

    及元素本身的成员。...与事件关联的抽象视图 在事件处理程序内部,对象this始终等于currentTarget的值,而target则只包含事件的实际目标。...(3)相关元素 DOM通过event对象的relateTarget属性提供了相关元素的信息。这个属性只针对mouseover和mouseout事件才包含值;对于其他事件,这个属性的值为null。...textInput 只有可编辑区域才有该事件,用户按下能够输入实际字符的键时才会被触发。在文本插入文本框之前触发,通常用于过滤敏感词。...在卸载之前,先通过onunload事件处理程序移除所有事件处理程序。 3. 模拟事件 可以使用JavaScript在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一样。

    3.6K51

    前端架构师之11_JavaScript事件

    事件驱动式 是指在Web页面中JavaScript的事件,侦测到的用户行为,并执行相应的事件处理程序的过程。 鼠标移入文本区域,文本区域变色这一过程。...而标准浏览器的事件处理程序按照添加顺序正序执行。 事件监听的处理程序是一个有名的函数时,可移出事件监听。...var event = e || window.event; 2.2 常用属性和方法 在事件发生后,事件对象event中不仅包含着与特定事件相关的信息,还会包含一些所有事件都有的属性和方法。...('单击'); }; div id="demo">div> 解决办法:页面事件可以改变JavaScript代码的执行时机。...例如,文本框获取焦点改变文本框的样式,文本框失去焦点时验证文本框内输入的数据等。

    89710
    领券