<!DOCTYPE html>
<html>
<head>
<title>天気を聞く</title>
</head>
<body>
<h1>天気を聞く</h1>
<form>
<label for="city">都市名を入力してください:</label><br>
<input type="text" id="city" name="city"><br><br>
<input type="button" value="天気を検索する" onclick="getWeather()">
</form>
<div id="weatherResult"></div>
<script>
function getWeather() {
var city = document.getElementById("city").value;
// 入力値がない場合はエラーメッセージを表示
if (city === "") {
document.getElementById("weatherResult").innerText = "都市名を入力してください";
return;
}
// 天気予報APIにアクセスするためのURLを生成
var url = "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=YOUR_API_KEY";
// XMLHttpRequestを使ってAPIにアクセス
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
var weather = response.weather[0].main;
var description = response.weather[0].description;
// 天気とジョークを表示
document.getElementById("weatherResult").innerHTML = "天気: " + weather + "<br>詳細: " + description + "<br><br>冗談: 天気予報はいつも外れているといっていましたが、その言葉も当たり外れがあります。";
} else if (xhr.readyState === 4) {
// APIへのアクセスに失敗した場合はエラーメッセージを表示
document.getElementById("weatherResult").innerText = "天気の取得に失敗しました";
}
};
xhr.send();
}
</script>
</body>
</html>