问题标签 [onunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
74310 浏览

javascript - 如何获取 onbeforeunload 事件的目标 URL?

我已经搜索了几个小时,但我找不到解决方案。

这不起作用:

好的,所以要清除这些东西。如果用户单击页面本身的链接,这很容易,因为您可以为所有链接添加事件处理程序 onclick 事件,但是。我想获取地址,即用户在浏览器的 url 框中键入的内容。

0 投票
1 回答
6912 浏览

javascript - window.onload/onunload 和 body.onload/onunload 的区别

我已阅读问题window.onload 与 <body onload=""/>的答案。在那个问答中,许多人声称window.onload并且body.onload是相同的。这不是我所经历的。

考虑两个测试页面:

和:

对于“测试 1”页面,如果您从下拉菜单中选择一个项目并单击链接以离开该页面,然后单击后退按钮,则菜单将重置为其初始状态。但是,“测试 2”页面不会发生这种情况。为什么?

虽然这是一个测试,但我的目标是使用 RegisterStartupScript 或 RegisterClientScriptBlock 在 aspx 页面上执行类似的操作,因此我希望能够在不使用主体 onload/onunload 而是使用 window.onload/onunload 的情况下重新创建“测试 1”的行为.

0 投票
4 回答
649 浏览

javascript - 向服务器报告页面花费的时间

当访问者通过关闭选项卡或浏览器离开页面时,是否可以将在页面上花费的时间报告回服务器?使用 Javascript。

它适用于 Firefox、Google Chrome、Safari、Opera 和 IE8(IE7 和 6 不重要)。

但无论如何它都会起作用;即使浏览器正在关闭,或者输入另一个地址。

0 投票
1 回答
399 浏览

javascript - Javascript/jQuery:是否有人已经使用 jquery 在页面的顶部 100%:100% 创建了加载固定 div?

我有时会在 javascript onload 和 onunloadbody 事件中使用“加载”方法。(www.restaurantebarocortico.com

现在我正在学习 jQuery,我使用$(document).ready&$(window).unload来替换旧事件,但是 unload 事件无法正常工作。有人知道在卸载时调用函数的另一种方法吗?并且,如果需要,一种中断卸载并产生一些效果的方法(我需要这个方法来显示卸载时加载 div 的效果)。

加载div的流程:

  • 它出现在所有内容的顶部(没有效果),中间有一个 ajax-loader gif。
  • 文档准备好后,使用 jQuery 函数将其隐藏(效果慢)
  • 当文档/窗口正在卸载时,用 jQuery 函数显示它(再次缓慢效果),并中断一段时间的事件(或休眠效果的时间)。

谢谢,对不起我的英语:P José Moreira

0 投票
1 回答
1313 浏览

javascript - JavaScript onunload 仅在文档​​完全加载时调用?

我还没有看到任何提及这是 David Flanagan 的“JavaScript - the Definitive Guide”一书(我也在 O'Reilly Answers 上问过这个问题),或者其他任何地方,但我发现 window.onunload除非文档完全加载,否则不会调用,这很烦人!至少对于 IE8 和 Chrome 3 来说是这样

我有一段 Javascript 想要添加到网页底部。如果用户碰巧在页面加载之前点击了页面(^ 见下文),并且在我的 Javascript 有机会运行之前,我希望将其捕获在 onunload 中。但这是不可能的,因为只有在文档完全加载时才会调用 onunload 事件处理程序。如果我不能使用 onunload,还有什么我可以用它来达到同样的效果吗?

^ “Javascript - The Definitive Guide”建议用户与页面的交互在页面加载之前不会发生。我相信这是错误的。这本书是这样说的:

) 如果这样的事件处理程序试图操作文档中尚未解析的部分,它将失败。这种情况在实践中并不常见,通常不值得为积极防范这种情况而付出额外的编码努力。”(第 5 版,第 256 页)

我在 IE8 上进行了测试,表明可以在页面加载的任何阶段与页面交互(并通过锚链接离开)。

感谢您的帮助,保罗

0 投票
1 回答
4050 浏览

javascript - Javascript onunload表单提交未提交数据

我目前有一个表单,用于检查用户在离开页面时是否有未提交的更改,并使用通过onunload事件调用的函数。这是功能:

这是表格:

我不确定我在这里做错了什么。如果我只是按下表单的提交按钮,数据就会被提交并保存在我的数据库中。但是,据我所知,尝试通过onunload事件提交表单不会导致存储任何内容。我已经尝试向onclick提交按钮添加警报并向onsubmit表单元素添加警报,我可以验证提交按钮是否被触发并且表单确实被提交。但是,没有任何东西通过存储在数据库中。关于我做错了什么的任何想法?

0 投票
1 回答
353 浏览

c# - C# WebPages:管理退出事件或在没有用户操作服务器端的情况下退出

当用户无操作退出到其他页面时,管理退出或退出事件的更好解决方案是什么?此事件只需触发一次,用于删除所有在放弃此页面后未存储的临时文件或数据。非常适合用作服务器端的清洁方法。谢谢。

0 投票
2 回答
2090 浏览

javascript - 如何在 IE 中的 javascript 的 onunload 事件中获取页面卸载的原因?

页面卸载可能有不同的原因:
1 用户关闭当前窗口。
2 用户导航到另一个位置。
3 单击后退、前进、刷新或主页按钮。
4 用户提交表单,然后浏览器开始卸载当前页面并加载表单提交结果的页面。(假设当前窗口是窗体的目标)。
5 等等...

我可以在 onunload 处理程序中以某种方式知道卸载的原因是 p.4,即移动到带有表单提交结果的页面吗?
我可以在提交表单时定义一些标志,但这并不能解决问题。因为来自网络服务器的响应(在表单提交时)需要一些时间,所以浏览器不会立即卸载当前页面并等待来自服务器的响应。在此等待期间,用户可以关闭窗口或在任何地方导航。而且我需要知道它是否确实移动到结果页面或其他东西......?

0 投票
1 回答
2004 浏览

javascript - onunload 确认是否可以在同一个窗口中打开一个新的 url?

这是我的第一篇文章,我是一个JS新手,所以请原谅我的无知......

这是我的问题,它分为两部分:

1.) 在onunload我想要一个警报,询问用户是否想访问相关的 URL。我正在使用的代码有效,但它会在新窗口中打开 URL,即使用户已选择加入,也会被弹出窗口阻止程序阻止。有没有办法让它在同一个窗口中打开并取消弹出窗口阻止程序?

2.) 有没有办法将 onunload 函数从 body 标签中取出并放入脚本中?

这是我正在使用的代码:

提前致谢,

0 投票
2 回答
126 浏览

php - 是否有推荐的方法来处理保存数据以响应没有 onunload 事件的站点内导航?

序言范围我的问题:

我有一个 Web 应用程序(或站点,这是一个内部 LAN 站点),它广泛使用 jQuery 和 AJAX 在浏览器中动态加载 UI 的内容部分。用户使用导航菜单导航应用程序。单击导航菜单中的项目会对 php 进行 AJAX 调用,然后 php 返回用于填充中心内容部分的内容。

由 php 提供的其中一个页面有一个表格,其设置类似于电子表格,用户可以在其中输入值。该表始终与数据库中的数据保持同步。因此,当创建表时,它是否填充了相关的数据库数据。然后,当用户在“单元格”中进行更改时,该更改会立即写回数据库,因此表和数据库始终保持同步。这种方法是为了向用户保证他们输入的数据已被保存(长篇大论......),并减轻他们不得不点击某种保存按钮的负担。

所以,这个总是同步的想法很好,除了用户可以在一个单元格中输入一个值,而不是将焦点移出单元格,然后采取任何可能导致最后一个值丢失的操作:例如导航到通过导航菜单访问网站的另一部分,退出应用程序,关闭浏览器等。

序言结束,正题:

我最初认为这不是问题,因为我只会跟踪哪些数据是“脏的”或未保存的,然后在 onunload 事件中我会对数据库进行最后的写入。问题就在这里:由于我聪明(或不太聪明,不确定)使用 AJAX 并动态加载内容部分,当采取上述操作时,用户实际上从未离开原始 url 或页面,除了关闭浏览器。因此,onunload 事件不会触发,我又回到了丢失最后一个数据的状态。

我的问题是,当以这种方式动态加载内容时,是否有推荐的方法来确定一个人是否正在离开应用程序的“部分”?

我可以想出一个我认为的解决方案,它涉及全局变量和跟踪当前查看的页面,但我想我会检查是否有更优雅的解决方案,或者我可以在我的设计中做出改变,这将使这项工作。

一如既往地提前感谢!