前提:php
使用ThinkPHP。后台传一个变量到html页面:$this->assign("variable", $variable);html
问题:安全
在html页面中嵌套js代码,在js的代码中输出这个变量:测试
<script language="JavaScript"> var variable =<?php echo $variable;?>; alert(variable); //这样是能够正常输出的 </script>
将上面的代码迁移到js文件variable.js中,再在该html页面引入这个js文件,这时候就会出错,不可是输出不来,仍是形成js错误,js代码都运行不了。this
个人解决方法是:code
写隐藏标签<input type="hidden" id="variable" value="{$variable}"/><!--对!我没有修改定界符-->htm
再在js中获取该元素的值ip
若是你有使用jq的话,你能够在标签中添加属性:input
<div data-value="{$variable}">我是div</div>后台
js: var variable =$("div").attr("data-value");
上面两种方法都有个缺陷,就是variabe都是可见的,只要别人“审查元素”就能看见你的variable是什么,是保密的数据就不建议这样作了。
追加:刚刚利用审查元素测试了,以下所说,是能够就算放在js里也是会输出variable的,确实没有安全性的说法。