2016-11-28 3 views
0

몇 가지 문제점이 있습니다. 코드가 있습니다잡히지 않은 TypeError : 정의되지 않은 'value'속성을 설정할 수 없습니다.

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. 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 = {}을 설정하고 속성을 설정할 수 있습니다.

1

나는 문제가 여기에 놓여 있다고 생각 : 당신은 간단한 변수로 c를 선언 한

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

. 대신 개체로 C를 선언

var c = {} ; 
+0

이것은 그가 이미 var 앞에 선언했기 때문에 오류가 발생하고, 정의되지 않았는지 검사합니다 (c는 객체이고 undefined가 아니기 때문에이 검사가 올바르지 않습니다). –

+0

나는 마지막 else 블록을 참조하여 실행될 것입니다 c가 정의되지 않은 경우에만. 이 문제는 c를 변수로 초기화 한 다음 'value'속성에 액세스하려고 시도하는 것입니다. –

관련 문제