我得到了这样的代码:
<script>
CONT_TEXT = 'Some Text'
var jsobj = <?php json_encode(array(
'prop1' => 'something',
'prop2' => 'CONT_TEXT',
'prop3' => 'location.host',
)) ; ?>;
alert(jsobj.prop2);
alert(jsobj.prop3);
</script>
输出为:
<script>
CONT_TEXT = 'Some Text'
var jsobj = {"prop1":"something","prop2":"CONT_TEXT","prop3":"location.host"};
alert(jsobj.prop2);
alert(jsobj.prop3);
</script>
我想第一个警报显示:Some Text
,第二个显示网站主机属性。这意味着:
<script>
CONT_TEXT = 'Some Text'
var jsobj = {"prop1":"something","prop2":CONT_TEXT,"prop3":location.host};
alert(jsobj.prop2);
alert(jsobj.prop3);
</script>
“
是我的问题!
如何在 PHP 中通过 json_encode 传递 javascript 约束?
你的想法是什么?
最佳答案
我查看了 json_encode 的 PHP 标志,但找不到任何有帮助的内容。那么为什么不尝试使用 javascript eval()
方法呢。
像这样:
alert(eval(jsobj.prop2));
alert(eval(jsobj.prop3));
查看这些文档:eval()
我不知道这是否是最好的方法,但我受到了启发post 。尝试使用此函数而不是 eval:
function safe_eval(prop)
{
try {
return eval(prop);
} catch (e) {
return prop;
}
}
它将返回 eval()
编辑的变量值,或者仅返回字符串,以防 eval()
失败。
关于javascript - json_encode 和 javascript 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038037/