通过JSON传入javascript代码导致错误?
我有以下代码:通过JSON传入javascript代码导致错误?,javascript,json,Javascript,Json,我有以下代码: <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.q
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '12345'); // Insert your pixel ID here.
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=12345&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
这是我的前端将如何解析它:
pixels = "{{ pixels_json }}"; // Rendered by jinja
pixels = JSON.parse(pixels);
我运行了这个,得到了以下结果:
<html>
<body>
<script>
pixels = "["<!-- Facebook Pixel Code -->\r\n<script>\r\n!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?\r\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;\r\nn.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;\r\nt.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,\r\ndocument,'script','https://connect.facebook.net/en_US/fbevents.js');\r\nfbq('init', '325091591183913'); // Insert your pixel ID here.\r\nfbq('track', 'PageView'); fbq('track', 'Lead');\r\n</script>\r\n<noscript><img height=\"1\" width=\"1\" style=\"display:none\"\r\nsrc=\"https://www.facebook.com/tr?id=325091591183913&ev=PageView&noscript=1\"\r\n/></noscript>\r\n<!-- DO NOT MODIFY -->\r\n<!-- End Facebook Pixel Code -->\r\n"]"; // Rendered by jinja
pixels = JSON.parse(pixels);
for (var encoded in pixels) {
var iframe = document.createElementById('iframe');
iframe.open();
iframe.write(encoded);
iframe.close();
document.body.appendChild(iframe);
}
</script>
</body>
</html>
该公司的像素代码--\r\r\n\r\n!该公司的功能(f,b,e,v,n,t,t,s){如果(f.fbq)传传回;n=f.fbq=4.34;该公司的7.34;该公司的脸脸脸脸脸脸上的34;34;该公司的脸脸脸脸上的34;34;34;该公司的脸脸脸上的像素;以及以及该公司的34;34;34;34;34;34;34;34;34;该公司的像素;34;34;34;34;34;以及该公司的脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸脸上的像素;34;34;34;34;34;34;以及以及该公司的像素;34;34;要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是(34;34;34;34;34;34;34;34;34;34;34;以及b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(窗口、\r\n文档、&39;脚本、&39;https://connect.facebook.net/en_US/fbevents.js')\r\nfbq(';init';';325091591183913';)//在此处插入您的像素ID。\r\nfbq(';track';';PageView';);fbq(&';track';Lead&&&&&';);\r\n/script\r\nOSCRIPTIMG height=\";1\";width=\";1\";style=\";display:none\";\r\nsrc=\";https://www.facebook.com/tr?id=325091591183913&;ev=PageView&;noscript=1\";\r\n//noscript\r\n!--不要修改--\r\n!--结束Facebook像素代码--\r\n";];//由金贾渲染
pixels=JSON.parse(像素);
for(以像素为单位编码的var){
var iframe=document.createElementById('iframe');
iframe.open();
iframe.write(编码);
iframe.close();
document.body.appendChild(iframe);
}
我在firefox中遇到以下错误:
VM5791:1 Uncaught SyntaxError: Unexpected token & in JSON at position 1
at JSON.parse (<anonymous>)
at master:6
(anonymous) @ master:6
VM5791:1未捕获的语法错误:位置1处JSON中的意外标记(&N)
在JSON.parse()处
船长:6
(匿名)@master:6
有什么想法吗 看起来您正在尝试将字符串解析为JavaScript而不是JSON。JSON是一种非常严格的数据结构。我想你想要的是eval()
但是在使用eval()时要非常小心:,因为您的JSON字符串不是JSON。您不需要对引号进行html编码。不确定为什么要在整个过程中使用实体。请发布可读的代码,不要缩小和删除unsorted@mtizzianiOPs代码未统一-第一个缩小的块是他们正在使用的FB模板。
VM5791:1 Uncaught SyntaxError: Unexpected token & in JSON at position 1
at JSON.parse (<anonymous>)
at master:6
(anonymous) @ master:6