本文介绍一种轻量级、无需后端的前端方案,通过原生 javascript 实现用户在网页中输入自定义文本,点击按钮后自动将预设代码模板中所有指定占位符(如 `character`)替换为该文本,并实时显示结果。适合非开发人员快速集成到静态网站中。
要实现类似 Episode 模板网站中“输入角色名 → 一键替换全部占位符”的功能,核心在于:捕获用户输入 + 定位模板文本 + 批量安全替换 + 即时渲染。整个过程完全运行在浏览器端,无需服务器参与,部署简单、响应迅速。
准备 HTML 结构
包含一个输入框()、一个触发按钮(
用 JavaScript 绑定交互逻辑
推荐使用 addEventListener(而非内联 onclick),更易维护且符合现代实践。关键点:
增
强用户体验的小技巧
CHARACTER enters from left to screen center. CHARACTER says, "Hello world!" CHARACTER walks toward the horizon./* CSS */ #inp { padding: 0.5rem; font-size: 1rem; text-transform: uppercase; margin-right: 0.5rem; } .btnChange { padding: 0.5rem 1rem; background: #2a6496; color: white; border: none; border-radius: 4px; cursor: pointer; } .btnChange:hover { background: #1d4a6e; }// JavaScript(放在
前或 DOMContentLoaded 中) const btnChange = document.querySelector(".btnChange"); const inp = document.querySelector("#inp"); const output = document.querySelector("#output"); const originalContent = output.textContent; // ✅ 预存原始模板,避免多次替换污染 btnChange.addEventListener("click", () => { const userInput = inp.value.trim(); if (!userInput) { alert("请输入有效名称!"); return; } // 全局替换所有 'CHARACTER'(区分大小写),并保持大写格式 output.textContent = originalContent.replaceAll("CHARACTER", userInput.toUpperCase()); });
这套方案零依赖、易理解、易定制,即使没有编程经验,也能按结构复制粘贴到你的 HTML 页面中立即生效——真正让模板工具“开箱即用”。