狩猎/歌剧中奇怪的按钮行为

Strange button behavior in safari/opera

本文关键字:按钮 狩猎      更新时间:2023-09-26

<button>标记在Safari和Opera(但在Firefox中没有)中似乎有奇怪的行为。如果按钮包含文本,那么我们有以下情况:

  • 如果单击鼠标,然后在不移动鼠标的情况下释放,则会发生onClick

  • 在按钮的非文本区域按下鼠标按钮,将鼠标拖动到按钮的其他非文本区域,释放,onClick发生

  • 在按钮的文本区域上按下鼠标按钮,将鼠标拖动到按钮的其他文本区域,释放,onClick发生

然而,奇怪的是:

  • 在按钮的文本区域上按下鼠标按钮,将鼠标拖动到按钮的非文本区域,释放,onClick不会发生

  • 在按钮的非文本区域按下鼠标按钮,将鼠标拖动到按钮的文本区域,释放,单击不会发生

这是一种奇怪的行为。大多数时候它不会被注意到,但如果你快速按下一个按钮,你的鼠标可以在点击时移动。这意味着它看起来像是你点击了按钮,但它没有激活。

这是已知的问题吗?我想这是因为文本不是按钮本身的一部分,只是一个子元素?有什么好办法绕过它吗?<input type=button>没有这种行为,可能是因为文本不是按钮的独立html元素。

<button>是新的,并且仍然是高度实验性的。它只能与HTML5结合使用。是的,它有缺陷,不仅在Safari和Opera中,甚至Chrome也有问题。

我的建议是使用<input type="button" />,直到所有现代浏览器都支持大多数新标准。

最好是等到HTML5正式发布,但是。。。好那将是一个漫长的等待。