2011-01-02 25 views
2

ここに問題があります。 HTML/JSコードがありますが、v3変数を読み取ることができません。つまり、DDDD(D,{"COM":"lng","leaf":145,"AXIS":true});(あらかじめ定義されたランダムな配列のようなもの)の後のものは、どれも読み込めません(JSコードとしては無視されます)。どうして?そして、どうすればv3の内容を入手できますか?これはjavascriptの解析バグですか?未定義のJavaScript変数

<html> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<head> 
<script type="text/javascript"> 
    <!-- 
    var v1 = 12345; 
    var v2 = "Hello world"; 
    DDDD(D,{"COM":"lng","leaf":145,"AXIS":true}); 
     var v3 = "World Hello!!!"; 
    //--> 
</script> 
</head> 

<!-- some html code --> 
<script> 

alert("This is "+v3); 

</script> 

<!-- some html code --> 
</html> 
+0

を?この特定のスニペットの前に読み込まれた他のファイルにもありますか? –

+0

"あらかじめ定義されたランダムな配列のようなものです" - この定義済みのものを含めるのを忘れてしまったと思います。 :) – bzlm

答えて

0

エラーが発生した場合のライン

DDDD(D,{"COM":"lng","leaf":145,"AXIS":true}); 

での誤差があります。残りのJSは実行されません。

5

DDDD関数がないため、最初のスクリプトがクラッシュするため、v3は決して割り当てられません。

DDDDという行は、というように定義されています。これは、あらかじめ定義されたランダムな配列「」の一種です。そうではありません。

これは、関数を呼び出して2つの引数を渡そうとする試みです。

  • DDDD()関数呼び出し。

  • a D可変引数。

  • a {"COM":"lng","leaf":145,"AXIS":true}オブジェクトリテラル引数。

+0

それは大丈夫です、私はちょうど私がいくつかのリモートスクリプトsrcを含めることを忘れていたことを実感します。ありがとう:) – Fontfaced

+0

@Fontfaced:あなたは大歓迎です。 – user113716

1

私はDDDDDがどこかで定義されていることを前提と?あなたのコードの抜粋はそれらを定義していません。定義されている場合は、エラーが表示されません。もしそうでなければ、それはあなたの問題です。

1

DDDD()行は、定義されていない関数(DDDDが定義されていない)を使用しているため例外がスローされ、そのスクリプトタグ内に続くものは実行されません。ただし、2番目のスクリプトタグは実行されますが、決して定義されていない変数にはアクセスできません。

0

javascriptが行にエラー(egineに依存)を取得すると、JavaScriptが完全に読み込まれないか、読み込まれません。既に私の前で言われたほとんどの人のように、DDDD()は他のどこかに存在しなければならず、未定義です。

1

あなたがエラーをキャッチして、v3でき罰金出てきます:DDDDが定義されている

<script type="text/javascript"> 
     <!-- 
     var v1 = 12345; 
     var v2 = "Hello world"; 
     try { 
     DDDD(D,{"COM":"lng","leaf":145,"AXIS":true}); 
     } 
     catch (ex) { 
     alert("error: " + ex.message); 
     } 
     var v3 = "World Hello!!!"; 
     alert(v3); 
     //--> 

</script>