为什么eval()在这种情况下不起作用?

时间:2019-06-14 20:49:39

标签: javascript html variables eval document.write

我有以下问题。 我有一个如下所示的div:

<div id="1234">
[...........]
</div>

主要任务是使函数具有以下形式的变量:

var locations=[[...........]];

因此,上面div的html内容,已通过以下代码将其放入特定功能中:

var location= document.getElementById("1234").innerHTML;
var locations = eval('['+location+']');

使用上面的代码,我得到了想要的结果,就像我以前所说的那样,它是一个变量,如下所示:

var locations=[[...........]];

这意味着使用eval();在div内部只有html代码的情况下,代码可以很好地工作。

但是,在更困难的情况下,如果在div内有写相同结果的javascript,该怎么办:

<div id="1234">
<script>
document.write(&quot;&lt;script src=\&quot;/feeds/posts/summary/-/<data:content/>?max-results=3&amp;orderby=published&amp;alt=json-in-script&amp;callback=map_locations\&quot;&gt;&lt;\/script&gt;&quot;);
</script>
</div>

如果我使用相同的代码

var location= document.getElementById("1234").innerHTML;
var locations = eval('['+location+']');

代码不起作用,控制台日志显示以下内容

VM8144:2 Uncaught SyntaxError: Unexpected token <
    at mainMap ((index):982)

非常感谢您的时间。...

0 个答案:

没有答案