所以,我今天才发现你可以在chrome控制台中运行javascript。我不知道你可以这样做。这实际上非常酷。
在我的rails应用程序中,我有一个外部javascript页面。我希望该页面上的某些变量是全局的,以便JS文件中的所有函数都可以访问它们。例如,我有一个地图,我希望地图对象在javascript文件中是全局的,因为这样所有的函数都可以访问同一个地图变量,而不是创建自己的变量,并且我可以将复杂的操作分解成更小的函数。
我知道如何做到这一点,并且它完美地工作。我的问题是,我能保护这些变量不受外部干扰吗?例如,您可以从chrome控制台更改所有javascript类变量的值..还可以访问和执行例如地图的方法..我已经锁定了地图设置,使其在其中一个页面上不可缩放或移动,但是从控制台中我只需输入“map.setZoom(11)”,地图就会缩放到11..我可以输入“map.dragable = true”,然后就可以拖动地图..我真的不喜欢这个..
虽然用户启用地图拖动和缩放并不是世界上最糟糕的事情..但是我仍然想禁用它。有什么想法吗?
编辑
感谢所有答案和评论。我想我只能不将任何可能被恶意利用的内容放入我的javascript中,并像将我的地图变量传递到必要的函数中以减缓人们的速度。
在我的rails应用程序中,我有一个外部javascript页面。我希望该页面上的某些变量是全局的,以便JS文件中的所有函数都可以访问它们。例如,我有一个地图,我希望地图对象在javascript文件中是全局的,因为这样所有的函数都可以访问同一个地图变量,而不是创建自己的变量,并且我可以将复杂的操作分解成更小的函数。
我知道如何做到这一点,并且它完美地工作。我的问题是,我能保护这些变量不受外部干扰吗?例如,您可以从chrome控制台更改所有javascript类变量的值..还可以访问和执行例如地图的方法..我已经锁定了地图设置,使其在其中一个页面上不可缩放或移动,但是从控制台中我只需输入“map.setZoom(11)”,地图就会缩放到11..我可以输入“map.dragable = true”,然后就可以拖动地图..我真的不喜欢这个..
虽然用户启用地图拖动和缩放并不是世界上最糟糕的事情..但是我仍然想禁用它。有什么想法吗?
编辑
感谢所有答案和评论。我想我只能不将任何可能被恶意利用的内容放入我的javascript中,并像将我的地图变量传递到必要的函数中以减缓人们的速度。