这个在线 HTML 预览工具通过一个文本框(<textarea>)让用户输入 HTML 代码,并通过点击“预览”按钮将输入的 HTML 渲染在新打开的浏览器窗口中;点击“清除”按钮则清空文本框的内容。
核心原理是通过 JavaScript 获取用户输入的 HTML 内容并用 window.open() 在新窗口展示,同时使用 document.write() 方法渲染 HTML。样式部分通过 CSS 控制布局和按钮的外观。
该工具简洁且直观,适用于简单的 HTML 代码测试和预览。
<div id="html-preview">
<textarea id="editor" placeholder="在这里输入 HTML 代码..."></textarea>
<div class="button-container">
<button id="previewBtn">预览</button>
<button id="clearBtn">清除</button>
</div>
</div>
<div id="html-preview">id="html-preview" 可以方便地用 CSS 或 JavaScript 选择该容器进行样式设置或操作。<textarea id="editor"><textarea id="editor" placeholder="在这里输入 HTML 代码..."></textarea>
<textarea>) 元素,用户可以在这里输入 HTML 代码。id="editor":用于标识文本区域,以便后续 JavaScript 操作。placeholder="在这里输入 HTML 代码...":当文本框为空时,显示的提示文本,告诉用户应该输入 HTML 代码。<div class="button-container"><div class="button-container">
<button id="previewBtn">预览</button>
<button id="clearBtn">清除</button>
</div>
<div class="button-container">:包裹按钮的容器,用于对按钮进行布局,确保按钮在页面中有一定的间距,并且能够居中显示。<button id="previewBtn">预览</button>:预览按钮,点击后会显示输入的 HTML 内容。
id="previewBtn":用于标识该按钮,后续 JavaScript 可以通过此 ID 获取并添加事件监听。<button id="clearBtn">清除</button>:清除按钮,点击后会清空输入框中的内容。
id="clearBtn":用于标识该按钮,后续 JavaScript 通过此 ID 获取并添加事件监听。用户在 <textarea> 中输入 HTML 代码,工具通过 JavaScript 获取输入的内容:
let htmlContent = editor.value;
这里,editor 是指向 <textarea> 元素的 DOM 对象,editor.value 获取的是用户输入的 HTML 代码。
点击“预览”按钮会打开一个新的浏览器窗口,并在其中展示输入的 HTML 代码:
const previewWindow = window.open("", "_blank");
previewWindow.document.open();
previewWindow.document.write(htmlContent);
previewWindow.document.close();
window.open("", "_blank");:打开一个新窗口或标签页。previewWindow.document.open(); 和 previewWindow.document.close();:这两行分别打开和关闭新窗口的文档流,确保 HTML 内容可以正确渲染。previewWindow.document.write(htmlContent);:将用户输入的 HTML 代码写入新窗口,触发 HTML 渲染。editor.value = "";
这行代码将 editor(即 textarea)的 value 属性设为空,从而清空用户的输入。
#html-preview #editor {
border: 2px solid #ccc;
padding: 10px;
font-family: Arial, sans-serif;
font-size: 16px;
width: 100%;
height: 400px;
box-sizing: border-box;
}
#html-preview button {
padding: 10px 20px;
cursor: pointer;
border: none;
font-size: 16px;
margin: 5px;
border-radius: 5px;
}
#html-preview #previewBtn {
background-color: #4CAF50;
color: white;
}
#html-preview #previewBtn:hover {
background-color: #45a049;
}
#html-preview #clearBtn {
background-color: #f44336;
color: white;
}
#html-preview #clearBtn:hover {
background-color: #e53935;
}
#html-preview .button-container {
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
margin-top: 10px;
width: 100%;
}
以上就是HTML预览工具的实现原理和核心代码。