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

注意,这个 JavaScript 事件即将弃用!

一般我们会用于以下场景: 保存用户数据:离开页面前保存数据; 执行清理任务:在离开页面之前关闭打开资源; 发送分析:在离开页面发送与用户交互相关数据。...为啥弃用 这个 unload 事件非常不可靠。在很多浏览器中代码都不会按照预期运行。...console.log('页面不可见'); } }); 第二个替代事件为 pagehide ,它会在用户点击跳转其他链接、前进或后退按钮,或关闭浏览器选项卡触发,也能够用来确定用户什么时候离开界面...pagehide 不会像 unload 一样让页面不符合bfcache (浏览器前进,后退,缓存操作)条件。...使用 Permissions-Policy 禁用 如果你知道自己网站有用到这个事件,但是又不知道怎么移除,可以使用 Permissions-Policy 来进行限制,Chrome 115 版本专门增加了对

34620

JSP 防止网页刷新重复提交数据

或者“怎样才能防止用户点击后退按钮返回以前浏览过页面?” 遗憾是,我们无法禁用浏览器后退按钮。...遗憾是,答案非常简单:我们无法禁用浏览器后退按钮。         起先我对于居然有人想要禁用浏览器后退按钮感到不可思议。...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用只有后退按钮,不包括浏览器前进按钮)。因为在默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)...它强制浏览器重新访问服务器下载页面,而不是从缓存读取页面。使用这种方法,编程者主要任务是创建一个会话级变量,通过这个变量确定用户是否仍旧可以查看那个不适合通过后退按钮访问页面。...三、其他方法     接下来我们讨论方法以后退按钮本身为中心,而不是浏览器缓存。这儿有一篇文章Rewiring   the   Back   Button很值得参考。

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

为安卓Chrome加入自定义手势控制

也有其独特手势特性(比如左/右划地址栏切换标签,下划菜单键弹出并选择菜单项等),但是深得"我国用户"喜爱左/右划控制页面后退/前进手势功能在却迟迟没有在Chrome上得到体现。...移除完成后,点击右下角"+"按钮进入手势添加界面,比如我们添加一个从屏幕左边缘右划返回上一页面的手势,可以如下设置:   手势选择:右划   触点个数:1   起始区域:左侧边缘   操作:无   ...注意事项:   这里需要说明:上文中"操作"这一项适用于全局,因为我们设定"返回"手势只需要对Chrome起作用,所以"操作"这一项我们将其设置为"无"。   ...启用"离开屏幕后识别"这一项可以防止GMD手势将我们对屏幕正常操作"误判"为手势触发条件,如果禁用这一项,GMD手势会检测到用户在屏幕上操作趋势,趋势满足某手势触发条件,GMD手势便相应预先设定好响应动作...你可以异想天开,比如双指左/右划来向前/向后切换标签页,双指下划关闭标签,双指上划新建标签页等,由于GMD对手势高度定制性,你甚至可以绘制属于自己手势作为手势触发条件,或者对几种手势进行组合来作为手势触发条件

3.6K30

26个你需要学习Firefox配置技巧,改进体验和加快浏览器响应速度

禁用不必要动画 动画在火狐不是一件坏事,但如果你有一个旧电脑,每MB内存计数或只是不需要这些动画华丽,你可以禁用toolkit.cosmeticAnimations.enabled,启用并将值设置为...这可能部分是因为它将Web页面存储在短期内存(或RAM)中方式,您可以使用后退和前进按钮访问这些短期内存 browser.sessionhistory.max_total_viewers会以超级快加载速度影响...调整智能位置栏建议数量 在Firefox中,您开始在位置(或URL)栏中键入时,将显示一个建议站点下拉列表。...每个站点缩放级别相同 Firefox会记住每个站点缩放首选项,并在加载页面将其设置为首选项。...增加“保存链接为”超时值 ​您右击并选择“Save Link As…”浏览器将从URL请求内容配置头以确定文件名。如果URL在一秒钟内没有传递报头,Firefox将发出一个超时值。

3.9K20

Chrome 120 有哪些值得关注更新?

这些机制一般被称为关闭请求,它们通常在桌面平台上通过 ESC 键,或者在 Android 平台则通过后退手势或按钮实现。...当前 Web 开发者对于自己组件没有很好方式来处理这种关闭请求,尤其是在 Android 设备上,这种问题相当明显,因为为后退手势提供简单关闭行为相当复杂。...举个例子,假设你是一个网站拥有者,希望控制你网站和第三方代码如何使用浏览器功能。例如,只允许你网站和你信任网站使用地理位置功能,而不是广告 iframes 。...现在它支持了了 Reporting API,你可以在浏览器遇到政策违反接收到报告。...0; report-to=main-endpoint; 关于 Reporting API 我之前专门写过介绍它文章,详细请看:使用浏览器 Reporting API 上报站点错误 更宽松 CSS

40510

Spring Security 之防漏洞攻击

并且,这个过程可以使用JavaScript来实现自动化,也就是不需要你点击按钮,也可以实现转账。另外访问一个受XSS攻击站点,这种情况也很容易发生。...提交HTTP请求,服务器查找预期CSRF令牌,并将其与HTTP请求中CSRF令牌进行比较,如果不匹配,HTTP请求将被拒绝。...: Strict:设置为该值,同一站点所有请求都将包含该Cookie,否则HTTP请求将不包含该Cookie Lax:请求来自同一站点,或者请求来自top-level navigations(❓不太理解...,但可能老式浏览器不支持,因此,SameSite建议作为加强防御,而不是唯一防御方式。...如果用户通过身份验证查看敏感信息然后注销,我们不希望恶意用户能够单击后退按钮查看敏感信息。默认情况下发送缓存控制标头为: Example 2.

2.3K20

JavaScript禁用浏览器后退按钮

,以抵消后退功能,这种方法应该是最简洁,并且不需要考虑用户连点两次或多次“后退情况,缺点是当用户端禁用了JavaScript之后即失效。...这种方法原理是,用新页面的URL替换当前历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。我想这可能正是许多人所寻求方法,但这种方法仍旧不是任何情况下最好方法。...3、键盘敲下后退键(Backspace)后 1、禁止浏览器自动后退 2、但不影响密码、单行文本、多行文本输入框等回退操作 代码如下: ...“后退按钮作出反应,客户端浏览器需要打开JavaScript代码。...,同时又保证了后退按钮不可用(新窗口浏览器后退按钮为灰色),看起来似乎是个好方法,但缺点也比较明显: 首先,关闭和重开浏览器窗口大小可能不同,用户可以明显看出这一过程,并且在一定程度上影响操作。

1.8K30

Material Design — 提示框( Dialogs)

提供明确“取消”与“确定”按钮 ---- 全屏提示框(Full-screen Dialogs) 仅限手机:由于空间有限,全屏幕对话框可能更适合使用在手机,而不是屏幕较大设备上。...全屏对话框可实现复杂布局,将多个材料堆积情况简化(提示框上层提示框),并暂时将app可感知海拔重置为更高。 全屏对话框允许任务在复杂操作开启简单菜单或简单提示框。...全屏提示框可用于满足以下标准内容或任务: ·该提示框包含需要输入编辑器(IME)组件(如选择器或form fields),例如键盘 ·没有实时保存更改时 ·app中没有草稿功能(无法自动存到草稿...确认按钮将被禁用,直到满足对话框中所有必填字段都完成,确认操作才会被激活 丢弃(离开) 丢弃操作(屏幕左上角“X”)和后退按钮均会关闭全屏对话框并放弃之前所做更改。...左:不要用“关闭”这样词作为确认    右:离开进行提示 导航 全屏幕对话框中使用“X”不同于向返回箭头,箭头能表示视图状态实时被保存。

5.1K101

手机端页面在项目中遇到一些问题及解决办法

(1)type="tel" iOS 和 Android 键盘表现都差不多 (2)type="number" 优点是 Android 下实现一个真正数字键盘 缺点一:iOS 下不是九宫格键盘,输入不方便...history.go(-1): 后退 + 刷新 history.back(): 后退 之所以注意到这个区别,是因为不同浏览器后退行为也是有区别的,而区别就跟 javascript:history.go...Chrome 和 ff 浏览器后退页面,会刷新后退页面,若有数据请求也会提交数据申请。...类似于 history.go(-1); 而 safari(包括桌面版和 ipad 版)后退按钮则不会刷新页面,也不会提交数据申请。...通常我们再滑屏页面,会调用 event preventDefault() 可以阻止默认情况发生:阻止页面滚动 touchend——手指离开屏幕触发 touchcancel——系统停止跟踪触摸时候会触发

3.4K30

被忽略缓存 -bfcache

当用户在浏览器中执行后退或前进操作浏览器可以从 bfcache 中快速加载页面,而不是重新请求服务器并重新渲染页面。这意味着用户可以瞬间回到之前访问页面,无需等待页面重新加载。...visibilitychange(如果页面不是隐藏状态):页面可见性发生变化。 pagehide:如果浏览器尝试将页面存储在 bfcache(后退/前进缓存)中,将触发此事件。...页面位于缓存中浏览器随时可以决定将页面从缓存中清除,在这种情况下,页面将被销毁,而不会触发任何通知。 再次导航到页面,将触发以下事件: resume:恢复事件,表示页面从冻结状态恢复。...从 bfcache 恢复页面:当用户执行后退或前进操作,导航回之前访问过页面浏览器可以从 bfcache 中快速恢复保存页面状态。...这意味着浏览器不需要重新请求页面的资源或重新渲染页面,而是直接加载保存在内存中页面状态,从而实现快速导航和无缝页面切换。

65930

关于如何做一个“优秀网站”清单——规范篇

下面是优酷首页加载过程,在内容全部加载完成前,先用展位符来展示,而不是白页,这样大大提升了用户体验。...下面是天狗网页面,在列表中点击详情页后,再后退返回列表,列表页仍然能滚到上次进入位置 点击,输入框不会被屏幕键盘遮蔽 确认方法:找到一个包含文本输入页面。...应用程序在离线不应比缓慢连接感觉更快 改善方法: 尽可能使用缓存优先响应。也可以查看我们服务工作者库,使得实现这些模式更容易。...站点适当地通知用户何时离线 确认方法: 向用户提供有关如何使用通知上下文: ■访问该网站并找到推送通知选择加入流程 ■浏览器显示权限请求,请确保已提供上下文以说明该站点需要权限...Chrome显示权限请求,请确保该页面“暗淡”(覆盖上一层),所有内容与解释网站需要推送通知原因无关。

3.2K70

Vue学习笔记——Vue-router「建议收藏」

{ path:'/hi', name:'Hi', component:Hi } 通过上面的配置已经可以增加一个新页面了。是不是自己Vue功力一下子就提升了一个档次。...$router.go(1) 这两个编程式导航意思是后退和前进,功能跟我们浏览器后退和前进按钮一样,这在业务逻辑中经常用到。比如条件不满足,我们需要后退。...router.go(-1)代表着后退,我们可以让我们导航进行后退,并且我们地址栏也是有所变化。 1.我们先在app.vue文件里加入一个按钮按钮并绑定一个goback( )方法。...$router.go(-1); } } } 打开浏览器进行预览,这时我们后退按钮就可以向以前网页一样后退了。...我们设置一个按钮,点击按钮后回到站点首页。 1.先编写一个按钮,在按钮上绑定goHome( )方法。

2.2K10

现代浏览器内部机制 Part 1 | 多进程架构

许多应用程序都被设计成以这种方式进行工作,所以其中一个进程挂掉,它可以在其他进程仍然运行时候直接重启。 ? 浏览器架构 终于进入这个话题了。所以浏览器是如何通过进程和线程建立起来呢?...这里要注意一点是,这些不同体系架构是实现细节,至今没有任何一个规范去限制浏览器应该被做成什么样子,不同浏览器之间架构可能完全不同。 在这个系列中,我们以 Chrome 最新架构为准。...浏览器进程 负责 chrome 浏览器功能,包括导航栏、书签、后退、前进按钮。当然也负责一些虽然看不到但也很重要部分,比如网络请求和文件访问。...将浏览器工作拆分成不同进程还有一个好处,就是安全。由于操作系统提供了一种限制进程“权限”方法,因此浏览器可以将特定功能和进程有效离开。...站点隔离(Site Isolation) 站点隔离是 Chrome 在其 67 桌面版上新增特性,基本原则是不同站点各自运行在自己沙箱环境中,独享进程,并且不允许通信。

2.3K41

百度烽火算法 2.0 来了,你做好防劫持了吗?

最后竟然发现是因为服务器端 PHP 因为 CentOS 更新升级造成配置重置了,而 WordPress 需要 PHP 函数被禁用了,因此……。 ?...在【彻底解决手机浏览器劫持问题】一文里虽然明月宣称已经彻底解决了劫持问题,但是这仅仅是解决了明月自己手机浏览器劫持问题,还是有用户反映在百度搜索进入本博客后会出现被劫持跳转问题。...恶意劫持百度流量行为,主要表现在: 搜索用户通过百度移动搜索到达网站后,搜索用户离开网站页面,通过后退后被劫持到虚假百度搜索结果页中; 搜索用户通过百度移动搜索到达网站页面后,搜索用户离开网站页面,...最近百度移动端搜索烽火算法 2.0 上线了,为了防止自己博客被“打击”,建议大家都多排查一下自己网站是否存在“被劫持”现象,特别是通过手机端百度搜索结果链接后劫持,这个你通过被搜索引擎是没法触发...问题都不大,但是明月还是提醒大家正所谓“道高一尺、魔高一丈”,平时大家多注意观察和测试是个好习惯,至少可以及时发现问题,至于说运营商劫持目前除了发现就工信部举报以外没有太好建议,据说你在工信部举报多了以后

63740

CSRF 攻击详解

因此,防御 CSRF 攻击,银行网站只需要对于每一个转账请求验证其 Referer 值,如果是以 bank.example 开头域名,则说明该请求是来自银行网站自己请求,是合法。...Referer 值是由浏览器提供,虽然 HTTP 协议上有明确要求,但是每个浏览器对于 Referer 具体实现可能有差别,并不能保证浏览器自身没有安全漏洞。...因此,用户自己可以设置浏览器使其在发送请求不再提供 Referer。他们正常访问银行网站,网站会因为请求没有 Referer 值而认为是 CSRF 攻击,拒绝合法用户访问。...验证Referer方式总结 优点:使用方便,开发简单,一定程度上能预防CSRF攻击; 缺点:这种机制完全依托于浏览器,Referer字段容易被故意篡改,或者被禁用。 2....XMLHttpRequest 请求通常用于 Ajax 方法中对于页面局部异步刷新,并非所有的请求都适合用这个类来发起,而且通过该类请求得到页面不能被浏览器所记录下,从而进行前进,后退,刷新,收藏等操作

2.9K20

网页制作105个问答

因为框架(frame)缘故,有许多人把别人网页放置到自己框架里,使之成为自己一页。如果你防止别人这样做,可以加入下列javascript代码即可,它会自动监测,然后跳出别人框架。...如果你测试整个站点下载速度,打开图片下载功能,如果你站点含有javascript,也要在浏览器选择为支持,同上,打入地址,回车,计时开始,所有内容下载完后,停止计时....其实,你只需要建立一个上下框架结构网页,把声音文件建立在下框架里,并把下框架宽度设置为一个像素,而上框架里是页面内容,访问者离开站点首页,因下框架内容未变,所以,声音不会间断。...这样,只要访问者不离开站点,旗帜广告会一直出现在他们面前。还要提醒你,不要在广告下面写上“为了本站发展,请单击广告”,你要让访问者知道这个广告会带给他们某种信息,而不是为了你才单击。...如果你站点上有邮件列表服务,每当访问者订阅并按下订阅按钮后。因为邮件列表需要订阅确定,而这种服务多为第三方提供,所以订阅确定页会连接到服务商页面。这样有时会照成访问者离开站点

4.7K20

窥探现代浏览器架构(二)

因为对于Chrome浏览器来说,导航栏输入既可能是一个可以直接请求域名还可能是用户想在搜索引擎(例如Google)里面搜索关键词信息,所以当用户在导航栏输入信息时候UI线程进行一系列解析来判定是将用户输入发送给搜索引擎还是直接请求你输入站点资源...当前tab会话历史(session history)也会被更新,这样当你点击浏览器前进和后退按钮也可以导航到刚刚导航完页面。...beforeunload可以在用户重新导航或者关闭当前tab给用户展示一个“你确定要离开当前页面吗?”二次确认弹框。...浏览器进程通过IPC告诉渲染进程它将要离开当前页面导航到新页面了 如果重新导航是在页面内被发起呢?...那么问题来了,导航开始时候,浏览器进程是如何判断导航站点存不存在对应service worker并启动一个渲染进程去执行它呢?

64410

JavaScript 高级程序设计(第 4 版)- BOM

,返回值单位为CSS像素 可以使用moveTo()和moveBy()移动窗口(依浏览器而定,这俩方法部分或全部被禁用) moveTo()接收移动到新位置绝对坐标x和y moveBy()接收相对当前位置在两个方向上移动像素数...弹出窗口 window.open()第二个参数不是已有窗口,则会打开一个新窗口或标签页 第三个参数即特性字符串,用于指定新窗口配置 如果不指定这会带所有默认浏览器特性 如果打开不是新窗口,...():接收一个显示给用户字符串(如果不是,会调用传入值toString进行转换),对话框只有一个“OK”(确定)按钮 confirm: 确认框有两个按钮:“Cancel”(取消)和“OK”(确定)...,除了hash外,设置location一个属性就会导致页面重新加载新URL 如果不希望增加历史记录,可以使用replace()方法,重定向后后退按钮禁用状态 reload() 能重新加载的当前显示页面...对象 点击“后退按钮直到返回最初页面, event.state 会为 null 可以通过 history.state 获取当前状态对象,也可以使用replaceState()并传入与pushState

1.2K10

一篇文章带你揭 秘现代浏览器原理与方法_浏览器发送请求原理

(一个) – 浏览器进程, 只有一个浏览器进程,负责浏览器主体部分,包括导航栏,书签, 前进和后退按钮, 提供存储等功能 Network(一个) – 网络进程, 主要负责⻚面的网络资源加载,之前是作为一个模块运行在浏览器进程里...这样做主要原因是让Chrome在不同性能硬件上有不同表现。Chrome运行在一些性能比较 好硬件浏览器进程相关服务会被放在不同进程运行以提高系统稳定性。...当前tab会话历史(session history)也会被更新,这样当你点击浏览器前进和后退按钮也可以 导航到刚刚导航完⻚面。...beforeunload可以在用戶重新导航或者关闭当前tab给用戶展示一个“你确定要离开当前⻚面吗?”二次确认弹框。...图片 那么问题来了,导航开始时候,浏览器进程是如何判断导航站点存不存在对应service worker并启动一个渲染进程去执行它呢?

42620

Ajax篇(003)-Ajax优缺点?

并且减轻服务器负担,Ajax原则是“按需取数据”,可以最大程度减少冗余请求和响应对服务器造成负担,提升站点性能; 4.基于标准被广泛支持:Ajax基于标准化并被广泛支持技术,不需要下载浏览器插件或者小程序...,但需要客户允许JavaScript在浏览器上执行。...缺点: 1.Ajax干掉了Back和History功能,即对浏览器机制破坏:在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中静态页面。...一个被完整读入页面与一个已经被动态修改过页面之间差别非常微妙;用户通常会希望单击后退按钮能够取消他们前一次操作,但是在Ajax应用程序中,这将无法实现后退按钮是一个标准web站点重要功能...(层层包含js文件是Ajax通病,再加上以往很多服务端代码现在放到了客户端);破坏了Web原有标准; 8.如果用户禁用了JS,网站就取不到数据。

59310
领券