另外,这个问题是onclick在点击选项时被触发一次,在选择时被触发另一次(然后firefox又来处理另一次),所以,我发现修补这个问题的最好方法是将select标记的onchange改为onchange。 但可悲的是,这只是摆脱了最初的点击,而不是FireFox的正确方式点击... 所以,如果我们修改getSelectedOption函数来检查browser is chrome是否正确,那么我们就可以保护自己!
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
2条答案
按热度按时间mgdq6dx11#
尝试编辑
select
标签的onclick
函数以调用option
标签的onclick
,现在的问题是它可能在FireFox中调用两次。查看实际操作-〉
另外,这个问题是
onclick
在点击选项时被触发一次,在选择时被触发另一次(然后firefox又来处理另一次),所以,我发现修补这个问题的最好方法是将select
标记的onchange
改为onchange
。但可悲的是,这只是摆脱了最初的点击,而不是FireFox的正确方式点击...
所以,如果我们修改
getSelectedOption
函数来检查browser is chrome是否正确,那么我们就可以保护自己!我们的新函数如下所示...
把所有东西都混在一起!
vwkv1x7d2#
由@tkellehe给出的答案是正确的,但最好是使用这种逻辑的每一个浏览器,管理选择的选项与switch case语句或调用一个函数,将选定的选项值作为参数,因为仍然在2023年谷歌浏览器有相同的行为,像其他浏览器(onClick方法的选项只在Mozilla Firefox中工作)。
下面是一个React示例: