好,伙计们,这也是我的小测试。我遇到了类似的问题,所以我决定测试3种情况:
- 一个HTML文件,一个外部JS文件...完全可以工作-函数可以通过全局变量进行通信吗?
- 两个HTML文件,一个外部JS文件,一个浏览器,两个标签:它们会通过全局变量干扰吗?
- 一个由2个浏览器打开的HTML文件,它将起作用并且会干扰吗?
所有结果均符合预期。
- 有用。函数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>
<script>
。我只是尝试了2种不同的方法(没有在helpers.js文件之前声明var),但它们都起作用。我会发布一个答案,但看来您的问题中肯定缺少一些关键信息。