0

如何动态创建 JavaScript?问题是,我有一个变量并希望将其解析为下一个脚本标记中的值,但我找不到如何.. 例如:

chartData = chartData + "['"+record["appname"]+", '"+record["CurrentConnections"]+"'], ";

chartdata 是一个变量,基本上是以下代码显示图表的正确格式的值:

<script>
    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(drawChart);
    function drawChart() {
        var data = google.visualization.arrayToDataTable([
          // !!!!NEED VALUE TO BE RESOLVED HERE!!!!
               ]);
            var options = {
            title: '<?php echo "$server"; ?>',
            is3D: true
        };
       var chart = new       google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}
</script>

所以在 !!!!需要在这里解决价值的地方!!!! 评论是我想要它,所以脚本会显示为..

 var data = google.visualization.arrayToDataTable([
    ['xxx', '1'], ['yyy', '13'], ['zzz', '233']
  ]);

这将显示图表。我可以静态地执行此操作,但我希望它从变量中获取。如果我使用 PHP 并回显,它将按我想要的方式打印 JavaScript,但在这种特殊情况下,我不能使用 PHP。

或者我如何在脚本标签内循环以使其假设它是这样的。

希望这是有道理的。

4

2 回答 2

0

我通过 QueryString 参数传入变量。

<script src="script.js?key=value"></script>

您可以使用获取当前运行脚本的参数的函数

function getScriptParameter(key, default_) {
    //get the query string items for the current script
    var scripts = document.getElementsByTagName('script');
    var index = scripts.length - 1;
    var myScript = scripts[index];
        if (default_ == null) default_ = "";
            key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(myScript.src);
        if (qs == null)
            return default_;
        else
            return qs[1];
}
于 2013-06-28T14:56:23.577 回答
0

eval 是这样使用的:

var myJS = "console.log('test')";
eval(myJS);

我认为它应该有所帮助。

于 2013-06-28T13:37:40.307 回答