如何在用JavaScript更改框架边框属性时回流页面



我正在编写一个TamperMonkey脚本来调整我不控制的网站的UI,该网站的主布局使用framesetframe元素。

我试图增加其中一个帧集的border属性,以便更容易调整帧的大小(用鼠标抓取更大的目标(。但是,即使我的脚本将正确的属性设置为所需的值,浏览器也不会更新渲染的帧集,直到出于其他原因(例如更改浏览器窗口大小(必须重新绘制它在我的TamperMonkey脚本中,如何让浏览器在更改帧集的border属性后立即渲染页面

以下是设置border属性值的代码片段:

const borderWidth = document.querySelector('html > frameset > frameset')?.attributes?.border;
if (borderWidth) {
borderWidth.value = 10;
}

这正是它应该做的。它成功地定位了正确的帧集元素,并将border属性设置为10。(通过使用开发工具进行检查来确认。(在控制台中运行它也可以,在element视图中立即更新frameset元素的border属性。

我发现了一个属性和方法列表;应该";触发回流。我尝试过通过控制台访问frameset及其子frames中的offsetWidth,以及被列为触发回流的各种其他方法,但到目前为止,它们都没有实际导致应用更改后的border值。

我是否应该以其他方式配置border值,而不是写入DOM中的属性,以触发回流";自然地";?我是否可以调用API来强制重新绘制框架集边界?

我使用的是铬基Edge,105.0.1343.33。

我通过更新JavaScript向要重新渲染的帧集添加一个空帧元素来强制回流,然后立即删除空帧。这触发了我需要的回流。

相关内容

  • 没有找到相关文章

最新更新