如何读取<script>标记内的json内容?</script>

时间:2012-07-15 18:52:59

标签: javascript html

因此,当我想在网页上添加Google +1按钮时,我会这样做:

<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {lang: 'zh-TW'}
</script>

但我想知道,脚本标签中有一个对象,但它也加载了plusone.js!最后,脚本还可以获取标记内的对象。谷歌如何做到这一点?不像通常我不会把任何东西放进去。通常我会做

<script type"text/javascript" src="script.js"></script>

1 个答案:

答案 0 :(得分:7)

由于URL已知,因此很简单:

JSON.parse(
    document.querySelector("script[src='https://apis.google.com/js/plusone.js']")
        .innerHTML.replace(/^\s+|\s+$/g,'')
);

也就是说,正如Alohci在评论中指出的那样,页面上的最后一个脚本将是脚本运行时加载的最后一个脚本,因为(除非另有说明)脚本是阻塞的。因此,这将起作用:

var scripts = document.getElementsByTagName('script');
var data = JSON.parse(scripts[scripts.length-1].innerHTML.replace(/^\s+|\s+$/g,''));