好的,伙计们,这也是我的小测试。我遇到了类似的问题,所以我决定测试 3 种情况:
- 一个 HTML 文件,一个外部 JS 文件......它真的有效吗 - 函数可以通过全局变量进行通信吗?
- 两个 HTML 文件、一个外部 JS 文件、一个浏览器、两个选项卡:它们会通过全局变量进行干扰吗?
- 一个 HTML 文件,由 2 个浏览器打开,它会工作吗?它们会干扰吗?
所有的结果都符合预期。
- 有用。函数 f1() 和 f2() 通过全局 var 进行通信(var 在外部 JS 文件中,而不是在 HTML 文件中)。
- 他们不干涉。显然,每个浏览器选项卡、每个 HTML 页面都制作了不同的 JS 文件副本。
- 正如预期的那样,所有工作都独立工作。
与其浏览教程,我发现试用起来更容易,所以我就这样做了。我的结论是:每当您在 HTML 页面中包含外部 JS 文件时,外部 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>