Tamam çocuklar, benim de küçük testim. Benzer bir problemim vardı, bu yüzden 3 durumu test etmeye karar verdim:
- Bir HTML dosyası, bir harici JS dosyası ... hiç çalışıyor mu - işlevler global bir değişken aracılığıyla iletişim kurabilir mi?
- İki HTML dosyası, bir harici JS dosyası, bir tarayıcı, iki sekme: bunlar global var aracılığıyla müdahale edecek mi?
- 2 tarayıcı tarafından açılan bir HTML dosyası çalışacak mı ve müdahale edecek mi?
Tüm sonuçlar beklendiği gibiydi.
- İşe yarıyor. F1 () ve f2 () işlevleri global var aracılığıyla iletişim kurar (var, HTML dosyasında değil, harici JS dosyasındadır).
- Müdahale etmezler. Görünüşe göre, her tarayıcı sekmesi, her HTML sayfası için JS dosyasının farklı kopyaları oluşturulmuş.
- Beklendiği gibi, tümü bağımsız olarak çalışır.
Öğreticilere göz atmak yerine, denemeyi daha kolay buldum, bu yüzden yaptım. Sonuç olarak, HTML sayfanıza harici bir JS dosyası eklediğinizde, harici JS'nin içeriği sayfa oluşturulmadan önce HTML sayfanıza "kopyalanır / yapıştırılır". Veya isterseniz PHP sayfanıza. Burada yanılıyorsam lütfen beni düzeltin. Teşekkürler.
Örnek dosyalarım şu şekildedir:
HARİCİ 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>
. Sadece 2 farklı yaklaşım denedim (var'ı helpers.js dosyasından önce bildirmeden) ve ikisi de çalıştı. Bir cevap göndereceğim, ancak görünen o ki sorunuzda bazı önemli bilgiler eksik.