2017-02-13 11 views
0

JavaScriptで基本的な機能を持っています。プリセットされた値をプリセットされた関数を使ってスクリーンに表示するだけです。私がやっていることの最初の行をブレークポイントすると、ページは正常にロードされますが、ブレークポイントを削除するとすぐに情報は設定されません。ページは空白です。その内部JavaScriptはブラウザデバッガで設定されたブレークポイントでのみ動作します

this.QuizSelection = function() { 
     // Fill the ID's with the right info 
     app.SetBackground('head', this.HeroImage); 
     console.log('1 ' + this.HeroImage); 
     app.LoadInnerHTML('breadcrumbs', 'Home/' + this.Title); 
     app.LoadInnerHTML('quizSelectionTitle',this.Title); 
     console.log('2 ' + this.Title); 
     app.LoadInnerHTML('quizSelectionIntro',this.Introduction); 
     console.log('3 ' + this.Introduction); 
     // Show the Quiz Selection and Heading 
     app.ShowSection('head'); 
     app.ShowSection('quizSelection'); 
     console.log('Quiz Selection'); 
    }.bind(this); 

機能(SetBackgroundとLoadInnerHTML)は、内側HTMLおよびセット背景画像を変更するだけ小さな一行関数です。

// Change Inner HTML 
this.LoadInnerHTML = function (id, html) { 
    var d = document.getElementById(id); 
    d.innerHTML = html; 
} 

// Set Background Image 
this.SetBackground = function (id, image) { 
    document.getElementById(id).style.backgroundImage = 'url(image)'; 
} 

ブレークポイントがオンになっていないと、なぜ動作しないのか理解できません。明らかに、すべてが上のブレークポイントと罰金ですが、それは結果オフだときに、私は、コンソールに出力を得るために、仕事をしている:

1  
2 
3 undefined 
Quiz Selection 
+1

データを表示する方法ではなく、最初にデータを取得する方法です。 'this.Title'、' this.Introduction'などはどこから来ましたか? – JJJ

+0

JSONファイルから来ています - デバッガの変数を見るとうまくロードされます –

+1

Ajaxコール?ベスト推測:[非同期呼び出しから応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – JJJ

答えて

2

あなたは競合状態にあります。

ブレークポイントを押すと、コードが非同期JSONロードが完了するのを待ちます。ブレークポイントがなければ、JSONを実際にロードする前にJSONを読み込もうとしているコードが実行されています。

この問題の解決方法については、How do I return the response from an asynchronous call?を参照してください。

+0

ちょっと見て - 最大の問題は、私はJQueryを使用することはできません - 私はJSを使用することができます - 私は、 –

+1

@WebDevelopWolfはい、それを可能にするjQueryについては何も具体的なことはありません。あなたのjsonの負荷は、負荷が完了したときにコードを実行する方法を持っています – Jamiec

-4

あなたはあなたのコードでconsole.log文を持っています。デバッガがオンになっていないとき、コンソールオブジェクトは存在しません(これは私の知る限りChromeにとっては当てはまりません)。したがって、JavaScriptコードの実行は失敗します。

+1

質問は、「結果がコンソールに出力されたときに」表示されるため、コンソールオブジェクトが見つからないために例外がスローされない可能性があります。 – Quentin

+0

私はIEを使用していません私は現時点でFirefoxを使用していますが、@Quentinは、ブレークポイントが設定されていないときにしかエラーを表示しないと言っています。 :) –

関連する問題