Oke, teman-teman, ini juga tes kecilku. Saya memiliki masalah yang sama, jadi saya memutuskan untuk menguji 3 situasi:
- Satu file HTML, satu file JS eksternal ... apakah berfungsi sama sekali - dapatkah fungsi berkomunikasi melalui global var?
- Dua file HTML, satu file JS eksternal, satu browser, dua tab: akankah mereka ikut campur melalui global var?
- Satu file HTML, dibuka oleh 2 browser, apakah akan berfungsi dan apakah akan ikut campur?
Semua hasil seperti yang diharapkan.
- Berhasil. Fungsi f1 () dan f2 () berkomunikasi melalui global var (var ada di file JS eksternal, bukan di file HTML).
- Mereka tidak ikut campur. Rupanya salinan berbeda dari file JS telah dibuat untuk setiap tab browser, setiap halaman HTML.
- Semua bekerja secara mandiri, seperti yang diharapkan.
Alih-alih menelusuri tutorial, saya merasa lebih mudah untuk mencobanya, jadi saya melakukannya. Kesimpulan saya: setiap kali Anda memasukkan file JS eksternal di halaman HTML Anda, konten JS eksternal akan "disalin / ditempelkan" ke halaman HTML Anda sebelum halaman tersebut diberikan. Atau ke halaman PHP Anda jika Anda mau. Harap perbaiki saya jika saya salah di sini. Terima kasih.
File contoh saya ikuti:
EKSTERNAL 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>
blok tag kedua . Saya baru saja mencoba 2 pendekatan berbeda (tanpa mendeklarasikan var sebelum file helpers.js) dan keduanya bekerja. Saya akan mengirim jawaban, tetapi tampaknya pasti ada beberapa informasi kunci yang hilang dalam pertanyaan Anda.