首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何制作自己的原生 JavaScript 路由

当你想到路由时,通常会想到类似 React 之类的库。但实际上,这些库和框架仍然使用 vanilla JavaScript。那么该怎么实现呢?...太糟糕了,因为单击浏览器的“后退”和“前进”按钮与浏览历史记录中的 URL 导航有关。如果没有 History API,就无法谈论路由。...结果:现在,每次我们单击按钮时,URL 实际上都会在浏览器的地址栏中更改。内容框也会更新。 ? 我们的原生 JS 路由开始运行了。请注意,每次单击按钮时,history.pushState 被触发。...使“后退”和“前进”按钮起作用 通过使用 history.pushState,你将自动使 Back 和 Forward 按钮导航到上一个或下一个状态。这样做会产生 popstate事件。...这是你必须再次更新视图的部分。(第一次是我们单击按钮时。) 但是由于该事件带有单击的 id,因此单击 Back 或 Forward 时很容易刷新视图并重新加载内容。

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

    JavaScript(十二)

    比如说,如果你单击了某个按钮,他们都认为单击事件不仅仅发生在按钮上。换句话说,在单击按钮的同时,你也单击了按钮的容器元素,甚至也单击了整个页面。 事件流描述的是从页面中接收事件的顺序。...HTML 事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的 HTML 特性来指定。这个特性的值应该是能够执行的 JavaScript 代码。...如,要在按钮被单击时执行一些 JavaScript,可以像下面这样编写代码: JavaScript 错误时在 window 上面触发,当无法加载图像时在 img 元素上面触发 scroll: 当用户滚动带滚动条的元素中的内容时,在该元素上面触发 resize: 当窗口或框架的大小变化时在...在用户双击主鼠标按钮(一般是左边的按钮)时触发 mousedown: 在用户按下了任意鼠标按钮时触发 mouseup: 在用户释放鼠标按钮时触发 mouseenter: 在鼠标光标从元素外部首次移动到元素范围之内时触发

    2.9K20

    爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法

    与传统的静态网页不同,动态网页使用JavaScript等脚本技术来实现内容的动态加载和更新。这给网页爬取带来了一定的挑战,因为传统的爬虫工具往往只能获取静态网页的内容。...而动态网页则是在客户端加载和渲染过程中,通过JavaScript等脚本技术动态生成和更新内容。...使用Selenium实现动态网页爬取 Selenium是一个用于自动化浏览器操作的工具,它可以模拟用户在浏览器中的操作,包括点击按钮、填写表单、执行JavaScript等。...Selenium可以模拟用户在浏览器中的行为,如点击按钮、填写表单、执行JavaScript等。 安装和配置 首先,你需要安装Selenium库。...获取元素的属性值: 示例: # 通过元素定位找到元素,并获取元素的指定属性值 element = driver.find_element_by_id("element") attribute_value

    2.3K10

    JavaScript的使用前言

    弹出对话框(包括一个确定按钮和一个取消按钮)。当用户点击"确定"按钮时,返回true当用户点击"取消"按钮时,返回false。...12、事件: 所谓事件,就是鼠标单击、鼠标滚动之类动作,主要事件列表如下: 事件 说明 onclick 鼠标单击 onmouseover 鼠标经过 onmouseout 鼠标移开 onchange 文本框内容改变...onselect 文本款内容被选中 onfocus 光标聚集 onblur 光标离开 onload 网页导入 onunload 关闭网页 我们最常用的就是onclick事件了,比如给一个按钮添加一个...onclick事件,就是在按钮标签那里添加onclick = "fun()",就表示单击了这个按钮就会调用fun这个函数。...elementNode是使用getElementById()、getElementsByTagName()等方法,获取到的元素节点,name是要想查询的元素节点的属性名字,value是要新增或者设置的值

    2.6K20

    javascript入门笔记5-事件

    事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。...比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。...3.鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。...加载页面时,触发onload事件,事件写在body标签内。 b. 此节的加载页面,可理解为打开一个新页面时。 如下代码,当加载一个新页面时,弹出对话框“加载中,请稍等…”。 12.任务 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。

    1.2K30

    JavaScript(十三)

    重置表单 在用户单击重置按钮时,表单会被重置。使用 type 特性值为 “reset” 的 input 或 button 都可以创建重置按钮,如下: 单击重置按钮重置表单时,会触发 reset 事件,利用这个机会,我们可以在必要时取消重置操作。 表单字段 可以像访问页面中的其他元素一样,使用原生 DOM 方法访问表单元素。...value 值改变时触发,对于 select 元素,在其选项改变时触发 文本框脚本 ---- 在 HTML中,有两种方式来表现文本框: 使用 input 元素的单行文本框 使用 textarea 元素的多行文本框...这个属性的值是一个正则表达式,用于匹配文本框中的值。...如果所有表单字段都有效,这个方法返回 true,即使有一个字段无效,这个方法也会返回 false。

    3.3K20

    怎么自动登录公司客户端系统、导出数据? | Power Automate实战案例

    相对于网页,客户端系统最大的特点是,你可能完全无法捕捉其中的UI元素,比如SAP那只“龟”,一旦尝试捕捉UI元素,就会警告、卡死: 像这种情况,我们主要靠模拟鼠标点击和键盘输入的方式来完成登录系统、导出数据等流程的自动化过程...3、设置窗口状态为最大化 为方便获取窗口里按钮、文本框等等需要点击的元素的位置,将窗口设置为最大化,这样能确保元素位置的相对固定。...5、发送鼠标单击 通过前面的步骤,我们打开了应用程序的窗口,此时便可以向窗口的特定位置“发送鼠标单击”,达到点击某个按钮,或者点入某个文本框准备输入内容的效果。...另外,也可以使用微信截图,按Ctrl+A进入截图状态,然后移动鼠标即可以看到鼠标光标的所在位置,当然,要自己记住并手填到上面的配置窗口中: 6、发送键 对于要输入内容的文本框,通过发送鼠标点击进入文本框输入状态后...流程一旦设置好后,就可以重复执行,一项任务就是点一下按钮的事情,值!

    3.8K70

    DOM 又是个什么鬼?

    它将 web 页面和 JavaScript 连接起来,允许程序和脚本动态地访问、更新文档的内容、结构和样式。...返回值是一个数组 getElementsByTagName() 根据元素名称获取元素对象们。返回值是一个数组 getElementsByClassName() 根据 Class 属性值获取元素对象们。...返回值是一个数组 write() 向文档写 HTML 表达式 或 JavaScript 代码 writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符 createAttribute...firstChild 返回元素的首个子元素 lastChild 返回元素的最后一个子元素 parentNode 返回元素的父节点 getAttribute() 返回元素节点的指定属性值 setAttribute...1.4.1 常用方法 方法 描述 name 返回属性的名称 value 设置或返回属性的值 1.5 事件   Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态

    1.3K30

    全网最新、最全的jQuery核心知识,你真的不想点开看看嘛?

    通过 DOM 对 HTML 页面的解析,可以将页面元素解析为元素节点、属性节点和文本节 点,这些解析出的节点对象,即 DOM 对象。DOM 对象可以使用 JavaScript 中的方法。...例如:给id是btn的按绑定单击事件 $("#btn").click(function(){ ​ alert("btn按钮单击了"); }) 12.2 on 事件绑定 on() 方法在被选元素上添加事件处理程序...通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON 同时能够把接收的数据更新 到 DOM 对象。...dataType:表示期望从服务端返回的数据格式。当我们使用 $.ajax() 发送请求时,会把 ​ dataType的值发送给服务端。...success : 一个function函数,代表请求成功时,从服务端返回了数据,执行的seccess指定函数 ​ 相当于之前使用 XMLHttpRequest对象,当readyState==4 &&

    5.9K10

    前端架构师之11_JavaScript事件

    用户单击button按钮,这个行为就会被JavaScript中的click事件侦测到;然后让其自动执行,为click事件编写的程序代码,如在控制台输出“按钮被单击”。...分类 属性/方法 描述 公有的 type 返回当前事件的类型,如click 标准浏览器事件对象 target 返回触发此事件的元素(事件的目标节点) 标准浏览器事件对象 currentTarget 返回其事件监听器触发该事件的元素...缓动的实现原理:通过定时器连续的修改当前DOM元素的某个样式值,达到一个动态的特效。...会出现的问题:若在页面还未加载完成的情况下,就使用JavaScript操作DOM元素,会出现语法错误。 按钮松开后,弹框不再移动。 3.5 键盘事件 键盘事件是指用户在使用键盘时触发的事件。 例如,用户按Esc键关闭打开的状态栏,按Enter键直接完成光标的上下切换等。

    7410

    前端|窗口(window)对象介绍

    2.2 创建对话窗口 我们在使用浏览器浏览内容时,经常会弹出各种各样的对话框,我觉得这些对话框就是我们与页面之间的交流。...confirm() 弹出一个包含‘确定’按钮、‘取消’按钮的对话框。当用户单击‘确定’按钮时,返回true值;当用户单击‘取消’按钮时,返回false值。...prompt() 弹出一个包含‘确定’按钮、‘取消’按钮和文本框的对话框。用户可以在此对话框中输入一些数据。当用户单击‘确定’按钮时,文本框中的内容;当用户单击‘取消’按钮时,返回null值。...当指定值>时,文本框会有默认值 接下来我们就来用一用这三个对话框吧。 示例:对话框的使用: 单击取消效果图 在这里我们创建了3个表单按钮,为3个表单按钮添加单击事件,实现单击不同的按钮时调用不同的JavaScript函数(调用window对象的alert方法、confirm

    1.8K20

    JavaScript脚本语言入门(下)

    2.JavaScript常用事件 事件 触发事件 onabort 对象载入被中断时触发 onblur 元素或窗口失去焦点时触发 onchange 改变元素的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生过改变时触发...onmousedown 单击任意一个鼠标键时触发。...onreset 单击重置按钮时,在上触发 onresize 窗口或框架的大小发生改变时触发 onscroll 在任何带滚动条的元素或窗口上滚动时触发 onselect 选中文本时触发 onsubmit...单击提交按钮时,在上触发。...confirm() 显示一个确认对话框,单击“确认”按钮时返回true,否则返回false prompt() 弹出一个提示对话框,并要求输入一个简单的字符串 blur() 将键盘焦点从顶层浏览器窗口中移开

    1.6K10

    【Java 进阶篇】JavaScript 与 HTML 的结合方式

    以下是一些常见的HTML事件: onclick:单击(或触摸)元素时触发。 onmouseover:鼠标悬停在元素上时触发。 onchange:元素的值更改时触发。...onsubmit:表单提交时触发。 onload:文档加载完成时触发。 你可以使用内联方式或外部文件方式添加事件处理程序。以下是一个使用内联方式的示例: <!...; } 在这个例子中,当用户单击按钮时,sayHello()函数将触发onclick事件。...'新的文本内容'; // 修改元素的HTML内容 myElement.innerHTML = '加粗文本'; 3.3 创建和插入元素 你可以使用DOM创建新的元素并将其插入到文档中... 在这个示例中,当用户单击按钮时,sayHello()函数将触发onclick事件,从而修改了段落的文本内容。 5.

    73240

    JS事件篇

    属性可以获取到当前元素所有子元素,不包括文本节点 区分概念: 节点包括文本节点,而元素不包括文本节点 firstChild获取当前元素第一个子节点 VS firstElementChild获取当前元素第一个子元素...抽离出按钮点击函数的小案例 parentNode :获取一个元素的父元素 innertext :获取到一个标签里面的文本内容 获取兄弟节点,也可能会获取到空白节点 获取兄弟元素 节点的属性 通过nodevalue...()但是可以使用 document.querySelector()代替 使用该方法总会返回唯一的一个元素,如果满足条件的元素有多个,那么它只会返回第一个 document.querySelectorAll...等,尽管解决了返回顶部的问题但仍存在其他缺陷 (3)事件处理函数的工作机制中,在给某元素添加事件处理函数后,一旦事件发生,相应JavaScript代码就会执行,所调用的JavaScript代码的返回值被传递给事件处理函数...JavaScript代码返回值为false,故此链接默认行为未被触发。

    12.6K10

    js中三种弹出框

    ,她可以用来简单而明了地将alert()括号内的文本信息显示在对话框中,我们将它称为警示对话框,要显示的信息放置在括号内,该对话框上包含一个“确认”按钮,用户阅读完所显示的信息后,只需单击该按钮就可以关闭对话框...单击“确认”或“取消”按钮都是关闭对话框,似乎没有什么区别,实际上,无论是单击“确认”或“取消”按钮都会返回一个布尔值,这样就 可以再幕后有一些js代码来发挥按钮的作用,请大家看下面的例子,体会使用confirm...c、通过if语句来使用con的值,分别执行不同的语句;执行的效果如下: 如果单击页面的确认框上的“确定”按钮后,出现如下图所示的页面: 如果单击“取消”按钮,则出现如下图所示的页面: 第三种: prompt...,同时她还包含“确认”或“取消”两个按钮,如果用户“确认”按钮,则prompt()方法返回用户在文本框中输入的内容(是字符串类型)或者初始值(如果用户没有输入信息);如果用户单击“取消”按钮,则prompt...确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

    9.7K50

    Firebug入门指南

    六、盒状模型 当你在HTML标签中,点击一个元素时,左面窗口显示HTML代码,右面窗口显示该元素的CSS。...在CSS窗口上方,有一个layout按钮,点击后会展示与该元素相关的方块模型,包括padding、margin和border的值。...要查看每一个元素的这三项值,只需点击"inspect"按钮,然后用鼠标悬停在页面中该元素的上方。 七、评估下载速度 Net标签中图形化了页面中所有http请求所用的时间。...右击行号,就可以设置一个断点出现的条件,只有当条件为真时,程序才会暂停执行。右面还有一个watch窗口,可以查看当前变量的值。...检查Response标签查看返回的格式,确定相应的Javascript处理函数应该如何编写。

    1.2K20

    Web阶段:第五章:JQuery库

    Jquery 的初体验 需求:使用Jquery和javascript给一个按钮绑定单击事件 注意:使用Jquery之前要将第三方jar包导入 <!..."); } } //使用Jquery给一个按钮绑定单击事件,Jquery中的$()代替window.onload...这些属性在dom对象中都会有true和false值的情况。 并且使用attr操作有返回undefined的情况下。使用prop方法。...// 它接收的参数就是提示框的提示文本内容 // 这个确认提示框有两个按钮,一个确认,一个取消 // 用户点击确认,就返回true //...第一个参数是 动画执行的时候,(单位是毫秒) 第二个参数是 动画执行完成时的回调函数 hide() 隐藏可见的元素 第一个参数是 动画执行的时候,(单位是毫秒) 第二个参数是 动画执行完成时的回调函数

    26.3K20
    领券