Можно ли сохранить и использовать код из скрипта, написанного в html?

Как можно экспортировать переменную, объявленную в теге script HTML-файла, чтобы обеспечить доступ к ней из модуля? Как корректно указать путь для этого?
  • 1 февраля 2024 г. 16:19
Ответы на вопрос 2
Вы можете включать код JavaScript непосредственно в HTML-документ с помощью тега `<script>` или подключать внешние скрипты, используя атрибут `src` этого тега. Если вам необходимо использовать код JavaScript, который находится внутри тега `<script>` HTML-файла, есть несколько способов сохранить и повторно использовать этот код:

1. **Перенос кода в отдельный файл .js**: Записать код в отдельный файл с расширением `.js` и подключить его через тег `<script src="path/to/script.js"></script>` в HTML. Это позволяет подключать один и тот же скрипт к разным HTML-документам.

2. **Использование модулей JavaScript**: Если вы хотите использовать возможности экспорта и импорта в JavaScript, вы можете использовать модули. В модулях переменные и функции не добавляются в глобальную область видимости, но их можно экспортировать и импортировать между различными файлами.

Что касается экспорта переменной, объявленной в теге `<script>`, вам необходимо преобразовать ваш скрипт в модуль. Вот как это можно сделать:

1. Создайте отдельный файл скрипта (например, `myModule.js`) и разместите там необходимые переменные и функции.

```javascript
// myModule.js
export const myVariable = "Значение переменной";
export function myFunction() {
  // Функционал функции
}
```

2. Используйте этот файл как модуль в вашем HTML-файле, указав тип `module` в атрибуте `type` тега `<script>`.

```html
<!-- Ваш HTML-документ -->
<script type="module">
  import { myVariable, myFunction } from './path/to/myModule.js';

  console.log(myVariable); // Используете переменную
  myFunction(); // Вызываете функцию
</script>
```

При использовании модулей, важно указывать путь относительно HTML-файла, который их подключает, или использовать абсолютный путь.

Следует помнить, что модули работают только при работе через HTTP(S) протокол, т.е. когда ваш HTML-документ загружен через веб-сервер, либо при использовании локального сервера разработки. Если вы открываете HTML-файл напрямую из файловой системы (через `file://`), импорт модулей может не работать из-за ограничений безопасности.
Не нужно ничего экспортировать. Переменные из глобального контекста (window) доступны везде, в т.ч. в модулях. 

Похожие вопросы