如何实现HTML天气组件?请分享天气预报组件的常见实现方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计789个文字,预计阅读时间需要4分钟。
直接使用 `
为什么 document.getElementById 报 null?DOM 还没准备好
把 fetch 写在 <script> 标签顶部,但 HTML 还没解析完,document.getElementById('weather-display') 必然返回 null。这不是 API 问题,是执行时机问题。
- 把整个逻辑包进函数,比如
loadWeather() - 用
window.addEventListener('DOMContentLoaded', loadWeather)确保 DOM 就绪 - 或者把
<script>放到</body>前,天然保证节点存在 - 别在全局作用域里用
await fetch(...),会阻塞渲染,尤其网速慢时页面“卡住”
为什么 fetch 天气 API 总是 CORS 报错?
Failed to load resource: net::ERR_FAILED 或控制台提示 No 'Access-Control-Allow-Origin' header,说明浏览器直接拦截了请求——OpenWeatherMap 等主流接口默认不开放前端直连。
本文共计789个文字,预计阅读时间需要4分钟。
直接使用 `
为什么 document.getElementById 报 null?DOM 还没准备好
把 fetch 写在 <script> 标签顶部,但 HTML 还没解析完,document.getElementById('weather-display') 必然返回 null。这不是 API 问题,是执行时机问题。
- 把整个逻辑包进函数,比如
loadWeather() - 用
window.addEventListener('DOMContentLoaded', loadWeather)确保 DOM 就绪 - 或者把
<script>放到</body>前,天然保证节点存在 - 别在全局作用域里用
await fetch(...),会阻塞渲染,尤其网速慢时页面“卡住”
为什么 fetch 天气 API 总是 CORS 报错?
Failed to load resource: net::ERR_FAILED 或控制台提示 No 'Access-Control-Allow-Origin' header,说明浏览器直接拦截了请求——OpenWeatherMap 等主流接口默认不开放前端直连。

