2016-11-28 7 views
0

私はいくつか問題があります。コードがあります未知の型エラー:未定義のプロパティ '値'を設定できません

function doGoogleLanguageTranslator(a) { 
    if (a.value) a = a.value; 
    if (a == '') return; 
    var b = a.split('|')[1]; 
    var c; 
    var d = document.getElementsByTagName('select'); 
    for (var i = 0; i < d.length; i++) 
     if (d[i].className == 'goog-te-combo') c = d[i]; 

    if (typeof(c) !== 'undefined') { 

     if (document.getElementById('google_language_translator') == null || document.getElementById('google_language_translator').innerHTML.length == 0 || c.length == 0 || c.innerHTML.length == 0) { 
      setTimeout(function() { 
       doGoogleLanguageTranslator(a) 
      }, 500) 
     } else { 
      c.value = b; 
      GLTFireEvent(c, 'change'); 
      GLTFireEvent(c, 'change') 
     } 


    } else { 
     if (document.getElementById('google_language_translator') == null || document.getElementById('google_language_translator').innerHTML.length == 0) { 
      setTimeout(function() { 
       doGoogleLanguageTranslator(a) 
      }, 500) 
     } else { 
      var c ; 
      c.value = b; 
      GLTFireEvent(c, 'change'); 
      GLTFireEvent(c, 'change') 
     } 
    } 
} 

私はエラーがあります。プログラムは宣言されたcを理解しません。 c.value = b; - これはエラーです

+0

、 –

+0

宣言コード '関数GLTFireEvent(a、b)は{ 試し{ 場合(document.createEvent){ するvar C =文書その問題を解決するために私を助けてください。 createEvent( "HTMLEvents"); c.initEvent(b、true、true); a.dispatchEvent(c) } else { var c = document.createEventObject(); a.fireEvent( 'on' + b、c) } } catch(e){} } –

+0

お手伝いをしてください。質問に必要なすべてのコードを含めます。 – mikedidthis

答えて

0

これはうまくいくはずですが、cは未定義で、未定義の種類にプロパティを設定することはできません。

あなたはvar c = {}を空のオブジェクトに設定し、プロパティを設定することができます。var c = {}を空のオブジェクトに設定するだけです。var c;

1

私はこの問題はここにあるかもしれないと思う:

else { 
    var c ; 
    c.value = b; 
    GLTFireEvent(c, 'change'); 
    GLTFireEvent(c, 'change') 
} 

あなたは、単純な変数としてcを宣言しました。代わりに、オブジェクトとしてCを宣言:

var c = {} ; 
+0

これは、すでにvarを一番上に宣言しているのでエラーが発生し、未定義であるかどうかをチェックします(このチェックは正しくありません。つまり、cはオブジェクトで未定義ではないからです)。 –

+0

最後のelseブロックを参照していました。 cが未定義の場合のみ。そこでは、問題は変数としてcを初期化し、属性 '値'にアクセスしようとしています。 –

関連する問題