OK, các bạn, đây cũng là bài kiểm tra nhỏ của tôi. Tôi gặp vấn đề tương tự, vì vậy tôi quyết định thử nghiệm 3 tình huống:
- Một tệp HTML, một tệp JS bên ngoài ... hoàn toàn có hoạt động - các chức năng có thể giao tiếp qua một var toàn cầu không?
- Hai tệp HTML, một tệp JS bên ngoài, một trình duyệt, hai tab: chúng có can thiệp thông qua var toàn cầu không?
- Một tệp HTML, được mở bởi 2 trình duyệt, nó có hoạt động không và chúng có can thiệp không?
Tất cả các kết quả đã được như mong đợi.
- Nó hoạt động. Các hàm F1 () và f2 () giao tiếp qua var toàn cầu (var nằm trong tệp JS bên ngoài, không phải trong tệp HTML).
- Họ không can thiệp. Rõ ràng các bản sao riêng biệt của tệp JS đã được tạo cho từng tab trình duyệt, từng trang HTML.
- Tất cả hoạt động độc lập, như mong đợi.
Thay vì duyệt hướng dẫn, tôi thấy thử nó dễ hơn, vì vậy tôi đã làm. Kết luận của tôi: bất cứ khi nào bạn đưa tệp JS bên ngoài vào trang HTML của mình, nội dung của JS bên ngoài sẽ được "sao chép / dán" vào trang HTML của bạn trước khi trang được hiển thị. Hoặc vào trang PHP của bạn nếu bạn muốn. Xin hãy sửa tôi nếu tôi sai ở đây. Thanx.
Các tập tin ví dụ của tôi làm theo:
BÊN NGOÀI:
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>
khối thẻ thứ hai . Tôi chỉ thử 2 cách tiếp cận khác nhau (không khai báo var trước tệp helpers.js) và cả hai đều hoạt động. Tôi sẽ đăng câu trả lời, nhưng dường như phải có một số thông tin chính bị thiếu trong câu hỏi của bạn.