Как загрузить выбираемый JavaScript в заголовке HTML
Я ищу способ выбрать и загрузить JavaScript из аргументов файла HTML. HTML-файл называется следующим образом:
OSM_Map.html? Year=2017 или OSM_Map.html? Year=2018
В файле OSM_Map.html есть следующий код в заголовке:
<head>
.....
<script language="JavaScript" type="text/javascript" src="LatLonDB_2017.js"></script>
<script language="JavaScript" type="text/javascript" src="LatLonDB_2018.js"></script>
....
</head>
Нет проблем получить аргумент год из списка аргументов, но как я могу загрузить в зависимости от аргумента год только один из этих файлов.js?
2 ответа
Сценарий LatLonDB_xxxx.js по-прежнему не загружается. Я не уверен, почему нет. Вы не можете загрузить файл.js из другого каталога, кроме файла.html? В противном случае загрузка может быть слишком поздней. Скрипты, следующие за скриптом LatLonDB_xxxx.js, используют эту БД.
Исходный код выглядит так:
<html>
<head>
...
<script language="JavaScript" type="text/javascript" src="../DataBases/LatLonDB_20xx.js"></script>
<script language="JavaScript" type="text/javascript" src="../DataBases/LatLonDB_utils.js"></script>
<script language="JavaScript" type="text/javascript" ...more scripts using the LatLonDB_20xx.js></script>
...
</head>
...
</html>
Намерение состоит в том, чтобы заменить 20xx на правильный год: 2000, 2001 и т. Д. Нет проблем с получением правильного года из параметров запроса.
Как кто-то сказал: "Да, вы можете":
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/loadjs/3.5.5/loadjs.min.js"></script>
<script>
var myparameter = new URL(location.href).searchParams.get("year");
loadjs( "LatLonDB_" + myparameter +".js" );
</script>
</head>
<body>
<h1>Titulo</h1>
</body>
</html>
URL-адрес был что-то вроде: http://test.html/?year=2018
НО! не уверен, что это будет работать в каждом браузере.... "searchParams" не является универсально совместимым.
Благодаря @spencer.sm в этом вопросе Как получить значение из параметров GET?
и, конечно, функция loadJS.