🙈使用 Tampermonkey 脚本插入 HTML 字符串和插入 DOM 节点之间的区别
2025-5-8
| 2025-5-10
字数 756阅读时长 2 分钟
type
status
date
slug
summary
tags
category
icon

插入 HTML 字符串

join(' ')使用空格连接数组中的 HTML 字符串,如<div class="top250">...</div>,这会在每个<div class="top250">元素之间添加一个空格,从而在页面渲染时产生间隔 。
 

将 HTML 字符串转换为 DOM 节点再插入

这种方式先将 HTML 字符串转换为真实的 DOM 节点再插入。具体过程为,创建一个文档片段fragment,遍历排名组件数组items,将每个 HTML 字符串创建为临时div元素,再将其第一个子元素(即真正的div.top250元素)添加到fragment中,最后使用container.parentNode.insertBefore(fragment, container);插入。这种方式直接操作 DOM 节点,不会引入额外的空格字符,所以元素之间没有间隔。
 

插入 DOM 节点同时保留元素之间间隔的尝试

在元素之间插入空白文本节点(Passed)

 

在 HTML 字符串中添加间隔(Failed)

经过尝试,在 HTML 字符串的末尾添加 (单空格或双空格)、&nbsp 都不能在转换为 DOM 节点之后保留间隔。
 

在 HTML 字符串中添加空白元素(Failed)

 

PS

为了使用插入 DOM 的方法并保留元素之间的间隔,我做了不少尝试并问了好多 LLM。多数 LLM 在首次问答时,都会建议我使用自定义 CSS 样式,但是这样就把问题复杂化了。这些 LLM 包括最近更新的 Qwen 3、DeepSeek、Kimi。但是只有豆包,在第一次问答的时候,就告诉我可以通过 const space = document.createTextNode(" "); 实现我的需求。
 
  • development
  • Process Flowchart During My Internship使用 Tampermonkey 脚本插入 HTML 字符串
    Loading...