加载JSON URL并发布到网站

时间:2016-03-22 16:05:20

标签: javascript json dom

我一直在尝试不同的编码方法,目前是p5js.org的,我无法看到使用document.write将json代码发布到我的网站,但它确实打印到控制台。有什么想法吗?

var bibleVerse;

function setup() {
  loadJSON('http://labs.bible.org/api/?passage=votd&type=json', gotData, 'jsonp');
}

function gotData(data){
  println(data);
  bibleVerse = data;  
}    

document.write(bookname.chapter.verse.text);

2 个答案:

答案 0 :(得分:0)

这假设p5js有效。

您应该确定要在网页上查看数据的位置并将数据插入该元素,而不是使用document.write。您可以使用元素id来完成此操作。

例如,您想将引用放入此段落中:

<p id="quote">Alternate Text</p>

然后将此document.write替换为:

document.getElementById("quote").innerHTML = data;

全部放在一起,您的JS代码可能如下所示:

function setup() {

  loadJSON('http://labs.bible.org/api/?passage=votd&type=json', gotData,     'jsonp');
}
  function gotData(data){
  document.getElementById("quote").innerHTML = data;
  // note: var bibleVerse is never used
}  

Alternate Text就是为了防止JS函数失败。

如果您不熟悉Web开发,请注意:如果您不想使用jQuery的$(document).ready()函数,则应将此JS脚本置于<body>。底部。这样你的页面首先加载,然后JS执行。

答案 1 :(得分:0)

如果您按顺序执行此代码:

var bibleVerse;

function setup() {
  loadJSON('http://labs.bible.org/api/?passage=votd&type=json', gotData, 'jsonp');
}

function gotData(data){
  println(data);
  bibleVerse = data;  
}    

document.write(bookname.chapter.verse.text);

执行以下步骤:

  1. 声明bibleVerse变量
  2. 声明setup函数
  3. 声明gotData函数
  4. bookname.chapter.verse.text写入文档。
  5. 这不起作用,因为:

    1. 没有什么是调用设置(除非你从代码中省略了这个)
    2. document.writegotData运行之前正在运行
    3. bookname未定义。
    4. 即使document.write按照正确的顺序发生,在页面加载完成后也不支持。
    5. 我建议你:

      1. 在占据该节目的页面上放置一个占位符(如<div id="verse"></div>
      2. 将您的setup功能附加到DOM事件(例如document.addEventListener('load', setup);
      3. 删除document.write,并在gotData函数中添加以下内容:
      4. 样品:

        var textNode = document.createTextNode(data.bookname.chapter.verse.text);
        document.querySelector('#verse').appendChild(textNode);