我实际上正在经历这个link。这解释了我们如何跨多个js共享全局变量。但问题是,如果我将一些变量放入一个js并且需要在第一个js之后传递给同一文档中提到的另一个变量,则需要做什么。
接下来的方法是:
脚本1 <script type="text/javascript" src="js/client.js"></script>
正文 添加了一些ID myHiddenId 的隐藏输入,其中值使用client.js设置
脚本2 <script type="text/javascript" src="js/anotherJS.js"></script>
在脚本2 内部我只是使用$("#myHiddenId").val();
并用于我的目的。
我想知道我是否遵循正确的方法,因为该隐藏字段可能包含一些客户端不应该知道的数据。有没有其他方法可以通过js文件传递变量值?由于我处于初级水平,因此挖掘了一些资源/书籍,但仍然没有运气。
答案 0 :(得分:1)
如果客户端不应该知道数据,那么您不应该使用客户端JavaScript。浏览器中执行的任何JavaScript都可以由用户调试和查看。
您应该始终在服务器端处理敏感数据。
将变量保存在JavaScript文件或隐藏元素中几乎没有区别。
关于在文件中使用变量,那么你应该能够使用脚本2 中脚本1 中声明的任何变量,只要它们在根范围内声明并且脚本1 出现在DOM中的脚本2 之前。
<script> // Script 1
var root_scope = 'This variable is declared at root';
function some_function() {
// Variables not defined at root are subject to the scope they are in
var non_root = 'This is not at root';
}
</script>
<script> // Script 2
// Use the variable declared in Script 1:
alert(root_scope); // This variable is declared at root
// Note: declaring at root is the same as assigning to window
alert(window.root_scope); // This variable is declared at root
alert(typeof non_root); // undefined
</script>