Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HTML内容转换为Javascript代码_Javascript_Html_Highcharts - Fatal编程技术网

将HTML内容转换为Javascript代码

将HTML内容转换为Javascript代码,javascript,html,highcharts,Javascript,Html,Highcharts,我正在尝试将div标记中的内容转换为Javascript代码。这样做的原因是获取div信息并将其转换为Highchart数据系列 HTML内容 <div id="data">{name: 'Point 1',x: Date.UTC(2014, 11, 1),x2: Date.UTC(2014, 11, 8),y: 0},{name: 'Point 2',x: Date.UTC(2014, 12, 1),x2: Date.UTC(2014, 12, 8),y: 0},</div&

我正在尝试将div标记中的内容转换为Javascript代码。这样做的原因是获取div信息并将其转换为Highchart数据系列

HTML内容

<div id="data">{name: 'Point 1',x: Date.UTC(2014, 11, 1),x2: Date.UTC(2014, 11, 8),y: 0},{name: 'Point 2',x: Date.UTC(2014, 12, 1),x2: Date.UTC(2014, 12, 8),y: 0},</div>


{name:'Point 1',x:Date.UTC(2014,11,1),x2:Date.UTC(2014,11,8),y:0},{name:'Point 2',x:Date.UTC(2014,12,1),x2:Date.UTC(2014,12,8),y:0},
如果#数据元素的所有内容格式都正确,那么您实际上需要做的就是获取该元素的内部html并将其解析为JSON

// This is the contents of #data as a String
var data_as_a_string = document.getElementById("data").innerHTML;

// And here it is "in javascript" as an Object
var data_as_an_object = JSON.parse( data_as_a_string );

你可以试试eval函数

函数的作用是:计算表示为字符串的JavaScript代码


您是否可以为数据生成一个脚本标记而不是div,其中您可以为您的数据创建一个JS变量您可以调用JSON.parse来创建一个对象,我建议您使用例如,
而不是真正危险的div,没有必要,因为
JSON.parse在这种情况下工作得很好。同意,但一些浏览器可能不支持JSON方法,而且JSON parse也使用eval来执行代码,但它在执行之前验证代码,这更安全,无论如何,谢谢,它是100%的,因为我尝试过这样做,但我仍然无法将其作为数据加载。看看这个。我正在尝试从中获取“数据”,并将其传递到highchart数据系列。我对您的JS小提琴做了三个更改。首先,需要正确格式化字符串。因此,和数组必须用方括号([])包围。我通过连接添加了它们,您可以从中获取innerhtml。其次,您需要使用JSON.parse,而不是JSON.stringify(stringify的作用正好相反,并将对象转换为字符串)。最后,将变量放入海图的正确位置。在这里查看我的更新:这非常有效!!!直到我尝试将非数据元素添加到HTML中。(即{1,2,3,4,5}而不是1,2,3,4,5)。下面是一个新的JSFIDLE,它显示了我正在尝试做的事情。这里有几件事不对劲。首先,在真正的JSON格式中,必须将每个属性和每个字符串值的名称用双引号括起来。其次,因为您正在用HTML编写对象,所以Date.UTC等方法将不会运行。你不能直接用HTML编写JS,它们是两种不同的语言——为了解决这个问题,我改变了你的代码,以基于数组构建数据对象,看一看。另外,你从我以前的条目中复制了方括号,这是不必要的。现在目标是对的,尽管图表不是。
eval(string)
eval(" var s='hello'; alert(s);");