我的一堆JavaScript代码位于名为helpers.js的外部文件中 . 在调用此JavaScript代码的HTML中,我发现自己需要知道是否已调用helpers.js中的某个函数 .
我试图通过定义创建一个全局变量:
var myFunctionTag = true;
在我的HTML代码和helpers.js中的全局范围 .
下面是我的HTML代码:
<html>
...
<script type='text/javascript' src='js/helpers.js'></script>
...
<script>
var myFunctionTag = false;
...
//I try to use myFunctionTag here but it is always false, even though it has been se t to 'true' in helpers.js
</script>
我想做的甚至是可行的吗?
7 回答
在包含helpers.js文件之前,需要声明变量 . 只需在include for helpers.js上面创建一个脚本标记,然后在那里定义它 .
该变量可以在
.js
文件中声明,只需在HTML文件中引用即可 . 我的版本helpers.js
:还有一个测试它的页面:
你会看到测试
alert()
会显示两个不同的东西,写入页面的值第二次会有所不同 .好的,大家好,这也是我的小测试 . 我有类似的问题,所以我决定测试3种情况:
一个HTML文件,一个外部JS文件......它是否可以工作 - 函数可以通过全局变量进行通信吗?
两个HTML文件,一个外部JS文件,一个浏览器,两个选项卡:它们是否会通过全局变量进行干扰?
一个HTML文件,由2个浏览器打开,它会起作用吗?它们会干扰吗?
所有结果都符合预期 .
它有效 . 函数f1()和f2()通过全局var进行通信(var在外部JS文件中,而不是在HTML文件中) .
他们不会干涉 . 显然,每个浏览器选项卡,每个HTML页面都有不同的JS文件副本 .
所有都按预期独立工作 .
我没有浏览教程,而是更容易尝试,所以我做到了 . 我的结论是:无论何时在HTML页面中包含外部JS文件,外部JS的内容都会在呈现页面之前进入HTML页面"copy/pasted" . 或者如果你愿意,进入你的PHP页面 . Please correct me if I'm wrong here. Thanx .
我的示例文件如下:
EXTERNAL JS:
HTML 1:
HTML 2
嗨,要将值从一个js文件传递到另一个js文件,我们可以使用本地存储概念
Two.js文件
Three.js文件
我认为你应该使用“本地存储”而不是全局变量 .
如果您担心在非常旧的浏览器中可能不支持“本地存储”,请考虑使用现有的插件来检查“本地存储”的可用性,并使用其他方法(如果不可用) .
我使用了http://www.jstorage.info/,到目前为止我很满意 .
您可以创建一个json对象:
在fileA.js中
并从fileB.js访问它,如:
globalVariable.example_attribute
// Javascript文件1
// Javascript文件2
Don't forget to link your JS files in html :)