网页代码块如下:
...<script src="./js/main.js"></script><script> try { window.RenderModel = {{ data|safe }}; } catch (e) { }</script>...
后面这段内嵌代码是在页面加载是由后端(django)补全,传进来一些重要的参数。
然后,我的main.js
里有这样一个变量:
var hasServer = typeof (window.RenderModel) !== 'undefined'
这个变量通过判断window.RenderModel
是否存在来检测当前是否有服务器环境。
现在有一个小问题,虽然说可以解决,但是不明白其中的原理,所以请教一下各位高手。
当hasServer
这个变量在main.js
里直接声明时,无论是否在服务器环境,window.RenderModel
都被检测为undefined
,因为main.js
在内嵌代码前面执行,这一点是很显然的。但是,如果我将hasServer的声明放置在一个$(function())
中,如这样:
$(function() { var hasServer = typeof (window.RenderModel) !== 'undefined' ... });
这个时候hasServer
就可以正常判断`window.RenderModel
了,产生这种区别的原因是什么?
梵蒂冈之花
相关分类