gpt4 book ai didi

通过 javascript 更改值时的 Javascript 事件

转载 作者:行者123 更新时间:2023-11-28 00:25:04 24 4
gpt4 key购买 nike

所以我知道过去有人问过这个问题的几种变体,但我只是想看看 html5 和所有内容是否有任何变化。

基本上,我有基于 Web 的表单,这些表单具有更改时的事件。 (通过 onchange、onclick 等)。现在这些表单实际上将它们的值存储在一个 javascript 变量中。我意识到我这样做的方式是不同的,我可以稍后检查字段以了解更改。但是,由于我正在构建的应用程序,必须要有即时事件。

我遇到的问题是密码管理器之类的东西(我假设是 roboform 之类的插件)通过 javascript 更改表单字段的值。当 javascript 更改这些值时,它不会触发我当前正在使用的事件。

现在我知道 IE 有一个专有功能,叫做“propertychange”。 Firefox 也有一个类似的功能,称为“DOMAttrModified”(我相信现在 IE9 也支持它)。我相信,每一个都会起作用,因为我可以主动观察字段的值,并且当 javascript 更改值时会触发此事件。不过chrome和safari似乎都没有类似的功能。

我的主要问题是我是否遗漏了任何可以让它在 chrome 和 safari 中运行的东西(不使用 settimeout)?另外,是否有办法在 HTML5 中执行此操作?没有标准的方法来执行此操作对我来说似乎有点愚蠢。

最后,是否有可能停止像 lastpass 这样的东西实际填写您的字段。我知道您可以设置 autocomplete="off"并且他们应该不会实际填写这些字段,但这似乎不适用于 lastpass。

最佳答案

Firefox 有一个非标准的 Object.watch() 方法,可以让您知道何时从 JavaScript 更改属性 - 参见 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch .据我所知,没有其他浏览器因为性能影响而选择实现它。

对于 Chrome,我认为你运气不好 - 他们甚至选择不实现 DOM 突变事件以获得更好的性能分数。你只能在那里求助于投票 - 例如每 100 毫秒检查一次值,看它是否改变。 Safari 支持 DOMAttrModified 但在这种情况下它可能不会触发(取决于密码管理器是否实际更改属性或仅更改属性)。

关于通过 javascript 更改值时的 Javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com