2016-03-22 17 views
0

私はさまざまなコーディング方法を試みていますが、現在p5js.orgがあり、jsonコードをdocument.writeを使って自分のウェブサイトに投稿することはできません。何か案は?JSON URLを読み込んでウェブサイトに投稿する

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); 
+0

正確に何をしようとしていますか?なぜ 'document.write'を使用しようとしていますか?ページに情報を書きたい場合は、 'document.write'を使わず、DOM(' .innerHTML'など)を使います。 –

+0

'document.write'を使用しようとすると、共有したコードのどこにでも' document.write'が表示されないのはなぜですか? – Quentin

+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()機能を使用したくない場合は、これが一番下に<body>内のスクリプトをJS置く必要があります。こうすることで、ページが最初に読み込まれ、JSが実行されます。あなたは順次を通じて、このコードに従った場合

+0

'innerHTML'には注意してください。テキストにHTMLコンテンツが含まれている場合、エスケープされません。テキストコンテンツにテキストノードを使用する方が安全です。 – Jacob

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); 

これは、次の手順ん:

  • gotData関数を宣言し

    1. bibleVerse変数
    2. setup関数を宣言宣言
    3. W rite bookname.chapter.verse.textを文書に追加します。

    ので、これは、動作しません。(あなたのコードからこれを省略していない限り)何も

  • document.writegotDataを実行している設定を呼び出していない

    1. 実行されます。
    2. booknameは未定義です。
    3. document.writeが正しい順序で起きていても、ページの読み込みが完了した後は実際にはサポートされません。

    私はあなたをお勧めします:

    1. を詩を保持するページにプレースホルダを入れて(<div id="verse"></div>のような)
    2. DOMイベントにごsetup機能を取り付けます(document.addEventListener('load', setup);のような)
    3. document.writeを削除し、gotDataファンクションに次のように追加してください。

    サンプル:

    var textNode = document.createTextNode(data.bookname.chapter.verse.text); 
    document.querySelector('#verse').appendChild(textNode); 
    
  • 関連する問題