晴歩雨描

晴れた日は外に出て歩き、雨の日は部屋で絵を描く

JavaScript)HTML<INPUT>テキストボックスに入力されている文字列を、リアルタイムにURLのパラメーターに反映する方法。ChatGPT(3.5)に教えてもらった。

HTML<INPUT>テキストボックスに入力されている文字列を、リアルタイムにURLのパラメーターに反映する方法。

方法は、ChatGPT(無料版3.5)に教えてもらった。ググって、自分で考えるより速い。

≪サンプル≫

https://ok2nd.github.io/Test/text2url.html?text=テスト

URLに「text=テスト」等、文字列を渡すと、<INPUT>テキストボックスに、その文字列が入る。

<INPUT>テキストボックスの文字列を変えると、リアルタイムでURL引数のパラメーター文字列が変わる。

<INPUT>テキストボックスとURLパラメーター間で双方向に文字列が反映される。

≪ソースコード≫
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMLテキストボックスに入力されている文字列をリアルタイムにURLのパラメーターに反映する方法</title>
</head>
<body>
<h4>
HTMLテキストボックスに入力されている文字列をリアルタイムにURLのパラメーターに反映する方法
</h4>
<label for="inputText">Text Input:</label>
<input type="text" id="inputText" oninput="updateURLParameter()">
<script>
function updateURLParameter() {
	// 入力されたテキストを取得
	var inputTextValue = document.getElementById('inputText').value;
	// 現在のURLを取得
	var currentURL = window.location.href;
	// URLにパラメーターが含まれている場合と含まれていない場合で処理を分ける
	if (currentURL.indexOf('?') !== -1) {
		// パラメーターがすでに存在する場合は置き換える
		var updatedURL = currentURL.replace(/(\?|&)text=.*?(&|$)/, '$1text=' + encodeURIComponent(inputTextValue) + '$2');
	} else {
		// パラメーターが存在しない場合は新しく追加する
		var updatedURL = currentURL + '?text=' + encodeURIComponent(inputTextValue);
	}
	// ブラウザの履歴を変更せずにURLを更新
	window.history.replaceState({ path: updatedURL }, '', updatedURL);
}
// ページロード時にURLからパラメーターを読み取ってテキストボックスに反映
window.onload = function () {
	var urlParams = new URLSearchParams(window.location.search);
	var textParam = urlParams.get('text');
	if (textParam !== null) {
		document.getElementById('inputText').value = decodeURIComponent(textParam);
	}
};
</script>
</body>
</html>