HTML 调试是前端开发中的重要技能,涉及多种工具和技巧来识别和修复问题。
查看和编辑 HTML 结构。
<!-- 在 Elements 面板中可以看到 -->
<div class="container" id="main">
<h1 data-testid="title">页面标题</h1>
<p class="text">段落内容</p>
<!-- 注释也会显示 -->
</div>
<!-- 在 https://validator.w3.org/ 检查 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>待验证的页面</title>
</head>
<body>
<h1>页面标题</h1>
<!-- 故意制造错误 -->
<div><p>未闭合的段落
</body>
</html>
<form id="myForm">
<input type="email" required placeholder="输入邮箱">
<input type="submit" value="提交">
</form>
<script>
// 检查表单验证
const form = document.getElementById('myForm');
console.log('表单验证状态:', form.checkValidity());
</script>
<script>
// 测量 DOM 加载时间
const startTime = performance.now();
document.addEventListener('DOMContentLoaded', () => {
const loadTime = performance.now() - startTime;
console.log(`DOM 加载时间: ${loadTime.toFixed(2)}ms`);
});
// 检查重绘和回流
const element = document.getElementById('myElement');
const rect = element.getBoundingClientRect();
console.log('元素位置:', rect);
</script>
<script>
// 检查所有资源加载
window.addEventListener('load', () => {
const resources = performance.getEntriesByType('resource');
resources.forEach(resource => {
console.log(`${resource.name}: ${resource.duration.toFixed(2)}ms`);
});
});
// 图片加载监控
document.addEventListener('DOMContentLoaded', () => {
const images = document.getElementsByTagName('img');
Array.from(images).forEach(img => {
img.addEventListener('load', () => {
console.log(`图片加载成功: ${img.src}`);
});
img.addEventListener('error', () => {
console.error(`图片加载失败: ${img.src}`);
});
});
});
</script>
<div id="error-boundary">
<!-- 可能出错的内容 -->
</div>
<script>
// 全局错误处理
window.addEventListener('error', (event) => {
console.error('全局错误:', event.error);
// 可以发送到错误监控服务
});
// 特定区域错误处理
const errorBoundary = document.getElementById('error-boundary');
try {
// 可能出错的代码
errorBoundary.innerHTML = '<script>undefinedFunction()</script>';
} catch (error) {
console.error('边界错误:', error);
errorBoundary.innerHTML = '<p>内容加载失败</p>';
}
</script>