2016-12-06 12 views
1

私は、ブラウザのコンソール私が手にReferenceError)

jQuery.getScript("https://cdn.rawgit.com/DarkPotatoKing/darkpotatoking.github.io/master/latest_version.js") 
 
\t .done(function() { 
 
\t \t alert("done"); 
 
\t }) 
 
\t .fail(function() { 
 
\t \t alert("fail"); 
 
});

で次のスクリプトを実行すると、私はhttps://cdn.rawgit.com/DarkPotatoKing/darkpotatoking.github.io/master/latest_version.js

でホストされているJSファイルを持っています「完了」と表示されているポップアップですが、実行すると

version.number() 

次のエラーメッセージは、スクリプトがおそらく適切にロードされている場合は、「バージョン」は定義されていないのはなぜ

ReferenceError: version is not define 

を返されますか?私はあなたのためにそれを解決し

+0

からversion.number()を呼び出す必要があります:にSyntaxError:欠落している}プロパティリスト –

+0

後に私が見る、それを得ましたスクリプトを変更したときに動作するようになりました。 – DarkPotatoKing

答えて

1

あなたのスクリプトは構文エラーがあるため、解析できません。スクリプトを修正し、version.number()来る:もちろん

var version = { 
    number: function() { return "1.1"; }; <==Syntax error here 
} 

をあなたはlatest_version.jsから内部.done(function() {...})

0

EDIT

[OK]を、あなたはこれにそのアップロードされたファイルを変更する必要があります。

var version = { 
    number: function() { return "1.1"; } 
} 

あなたがそのコードにあまりに;を持っています。

そして、これはあなたの新しいjavscript/jQueryのコードです:あなたのコードが同期していないので、これがある

$.getScript("https://cdn.rawgit.com/DarkPotatoKing/darkpotatoking.github.io/master/latest_version.js") 
.done(function(script, textStatus) { 
    console.log(version.number); 
}) 
.fail(function(jqxhr, settings, exception) { 
    console.log("nope"); 
}); 



OLD

version.number()を実行した場合は動作する必要があります。

+0

'alert( "done")'を 'vs = version.number()'に置き換えましたが、その後vsにアクセスするとvsは未定義です。 getScript()呼び出しの外部でversion.number()によって返された文字列にアクセスするにはどうすればよいですか? – DarkPotatoKing

+0

@empiricありがとう!ほぼ週末;) –

+0

@DarkPotatoKingあなたは.doneの中にいなければなりません。どうして?少し説明:あなたは、javascriptがそのたわごとを待たずに他のコードを実行し、要求されたファイルがダウンロードされるようにダウンロードする必要があるファイルを要求します。 .doneコードを実行します。したがって、あなたが.doneの外にいて、 'vs = version.number()'を要求すると、ファイルがまだロードされていないので、undefinedと言います。 –

関連する問題