Хорошо, ребята, вот и мой маленький тест. У меня была похожая проблема, поэтому я решил проверить 3 ситуации:
- Один HTML-файл, один внешний JS-файл ... он вообще работает - могут ли функции взаимодействовать через глобальную переменную?
- Два файла HTML, один внешний файл JS, один браузер, две вкладки: будут ли они мешать через глобальную переменную?
- Один HTML файл, открытый двумя браузерами, будет ли он работать и будут ли мешать?
Все результаты были ожидаемыми.
- Оно работает. Функции f1 () и f2 () взаимодействуют через глобальную переменную (var находится во внешнем файле JS, а не в файле HTML).
- Они не мешают. Очевидно, разные копии JS-файла были сделаны для каждой вкладки браузера, каждой HTML-страницы.
- Все работает независимо, как и положено.
Вместо того, чтобы просматривать учебные пособия, мне было проще попробовать, и я это сделал. Мой вывод: всякий раз, когда вы включаете внешний файл JS в свою HTML-страницу, содержимое внешнего JS «копируется / вставляется» на вашу HTML-страницу до того, как страница будет отображена. Или на свою страницу PHP, если хотите. Пожалуйста, поправьте меня, если я ошибаюсь. Thanx.
Мои файлы примеров следуют:
ВНЕШНИЙ JS:
var global = 0;
function f1()
{
alert('fired: f1');
global = 1;
alert('global changed to 1');
}
function f2()
{
alert('fired f2');
alert('value of global: '+global);
}
HTML 1:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="external.js"></script>
<title>External JS Globals - index.php</title>
</head>
<body>
<button type="button" id="button1" onclick="f1();"> fire f1 </button>
<br />
<button type="button" id="button2" onclick="f2();"> fire f2 </button>
<br />
</body>
</html>
HTML 2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="external.js"></script>
<title>External JS Globals - index2.php</title>
</head>
<body>
<button type="button" id="button1" onclick="f1();"> fire f1 </button>
<br />
<button type="button" id="button2" onclick="f2();"> fire f2 </button>
<br />
</body>
</html>
<script>
блоке тегов. Я просто попробовал два разных подхода (без объявления var перед файлом helpers.js), и оба они работали. Я отправлю ответ, но похоже, что в вашем вопросе не хватает какой-то ключевой информации.