javascript - window.onchange - 是什么触发了它,删除它是否安全?

标签 javascript cross-browser

我继承了以下代码:

// if parent window is closed or changed, close popups
window.onbeforeunload = function () { /* some cleanup stuff */ };
window.onchange = function () { /* same exact cleanup stuff */ };

window.onchange 行引起了问题;
在 Chrome 上,它会无明显原因地触发(产生不良的清理结果)。它不会在 IE11 中触发。

我可以安全地摆脱这条线吗?

Mozilla guys不要提供太多信息:

An event handler for change events sent to the window.

...而且互联网上似乎也没有太多关于它的内容。

那么到底是什么触发了windows.onchange?它适用于所有主要浏览器吗? (如果没有,那么这对我来说就足以保证我可以删除它。)

最佳答案

当表单控件发生更改时,将触发更改事件。在下面的演示中,输入一些内容,然后按 Tab 模糊控件并触发更改事件。

onchange = function (e) { console.log(e.target); }
<input>

事件冒泡,因此监听器不需要直接附加到输入。

<小时/>

在您的示例中不可能说它是否“安全删除”,因为没有提供有关正在清理的内容的上下文,因此我们无法判断执行清理是否有必要/有用/有害每次更改事件之后。

关于javascript - window.onchange - 是什么触发了它,删除它是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40244569/

相关文章:

javascript - 优化/函数运行时 v8 状态代码会发生什么变化?

php - 如何将json发送到php文件以保存在服务器上

javascript - window.history.go 不工作

javascript - 在跨域中创建安全的 iframe

html - 从键盘导航中排除按钮

javascript - 当我点击 td 时,在 jquery 中获取 td 文本动态

javascript - 如何将单元格中的数字限制为 x 个小数点?

javascript - 如何将此 Silverlight 控件转换为 HTML/CSS/JS

php - 检测 PHP 中的浏览器语言

javascript - 有没有办法使 HTML 页面上的文本无法选择?