How to grab the string from url parameter in HTML5 Export

Godot Version

4.3

Question

I exported my godot game to web (html5) and I want to read map data from a url parameter. So for example we would load the game like: index.html?map-data=map string here.

Here’s what I tried, but it doesn’t work:

func _ready():
	# Check if we're running in a web environment (HTML5 export)
	if Engine.has_singleton("JavaScript"):
		var js = Engine.get_singleton("JavaScript")
		var url = js.call("get_current_url")  # Get the current page URL
		var map_data_from_url = extract_map_data_from_url(url)
		
		if map_data_from_url:
			map_data = map_data_from_url
			if validate_map_data(map_data):
				print("Map data successfully loaded:\n%s" % map_data)
			else:
				print("Error: Invalid map data format.")
		else:
			print("Error: No valid map-data URL parameter found.")
	else:
		print("Error: JavaScript is not available (likely not running in a web environment).")

# Function to extract map data from the URL
func extract_map_data_from_url(url: String) -> String:
	var query_start = url.find("?")
	if query_start == -1:
		return ""  # No query string found
		
	var query_string = url.substr(query_start + 1, url.length() - query_start - 1)
	var params = query_string.split("&")
	
	for param in params:
		var key_value = param.split("=")
		if key_value.size() == 2 and key_value[0] == "map-data":
			return key_value[1]
	
	return ""