基于 Chromium 的浏览器中的奇怪 JavaScript 错误

Weird JavaScript bug in Chromium based browsers

为了学校练习,我尝试使用 Javascript 增加按钮的宽度。

这是我的代码:

const button = document.querySelector("button");

button.addEventListener("click", () => {
  console.log(button.offsetWidth);
  button.style.width = button.offsetWidth + 1 + "px";
});
<button>Press me!</button>

For some reason, the width stops increasing after 3 clicks. 这只发生在基于 Chromium 的浏览器中(Chrome、Edge、Brave)。更奇怪的是,代码在我的另一台笔记本电脑 运行 上运行良好,与 Chrome 和 Edge 的版本完全相同。在 Firefox 和 IE9 中,它也可以正常工作。我试过清理我的缓存,甚至安装了一个新的浏览器 (Vivaldi),它也有同样的问题。我是 运行 Windows 10 版本 1909 内部版本 18363.1256。 Chrome 我使用的是版本 87.0.4280.88、Brave 版本 87.0.664.66 和 Edge 版本 87.0.664.66。

使用函数 getBoundingClientRect() 解决了这个问题。

const button = document.querySelector("button");

button.addEventListener("click", () => {
  console.log(button.getBoundingClientRect().width);
  button.style.width = button.getBoundingClientRect().width + 1 + "px";
});
<button>Press me!</button>