javascript - json_encode 和 javascript 常量

标签 javascript constants json

我得到了这样的代码:

<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/

相关文章:

javascript - HTML5拖放传输时调整div

java - 为什么在java中使用常量?

php - 本地主机上的目录名(__FILE__)

javascript - 使用php从URL获取json数据

json - Jolt 将值从数组移动到顶层

javascript - 如何将搜索结果显示为 "Showing 1-10 of 300"

javascript - 在 Bootstrap 行中垂直居中按钮

javascript - 如何在 rxjs 中进行序列映射,以便每个映射等待前一个映射?

java - Java中什么时候将变量转换为常量?

javascript - 在 AngularJS 的 Controller 中调用 JSON 的值,以便我可以编辑它