ОК, ребята, вот и мой маленький тест. У меня была похожая проблема, поэтому я решил проверить 3 ситуации:
- Один HTML-файл, один внешний JS-файл ... работает ли он вообще - могут ли функции взаимодействовать через глобальную переменную?
- Два HTML-файла, один внешний JS-файл, один браузер, две вкладки: будут ли они влиять на глобальную переменную?
- Один HTML-файл, открытый двумя браузерами, будет ли он работать и будут ли они мешать?
Все результаты были ожидаемыми.
- Это работает. Функции f1 () и f2 () взаимодействуют через глобальную переменную (переменная находится во внешнем файле JS, а не в файле HTML).
- Они не мешают. Очевидно, отдельные копии файла JS были сделаны для каждой вкладки браузера, каждой HTML-страницы.
- Все работает независимо, как и ожидалось.
Вместо просмотра учебников мне было проще его опробовать, так что я и сделал. Мой вывод: всякий раз, когда вы включаете внешний JS-файл в свою HTML-страницу, содержимое внешнего JS-файла «копируется / вставляется» в вашу HTML-страницу до ее визуализации. Или на вашу страницу PHP, если хотите. Пожалуйста, поправьте меня, если я здесь не прав. Спасибо.
Следующие файлы моего примера:
ВНЕШНИЙ 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>