2013-10-29 5 views
0

이 코드가 있습니다. 지저분한 사과드립니다. 나는 초심자이므로 문제가된다. 쿼리 문자열에서 체크 박스를 채우기로되어있다. Chrome, Safari, Firefox에서 작동합니다. IE에서 테스트를 시작했고 IE 8에서는 작동하지 않습니다. 클릭 수는 등록되지만 확인란은 채워지지 않습니다. 오류가 발생하지 않으며 단순히 무시하는 것처럼 보입니다.Javascript가 IE8에서 작동하지 않고 확실하지 않은 이유

//set var for queryString - "?" 
      var queryString = window.location.search.substring(1); 

      var parameters = queryString.split('&'); 

      var paramObject = new Object(); 

      for(var i =0; i < parameters.length; ++i){ 
       var equalsPos = parameters[i].indexOf('='); 
       var key = decodeURIComponent(parameters[i].substring(0,equalsPos)); 

       var stringLength = parameters[i].length; 

       var value = decodeURIComponent(parameters[i].substring(equalsPos + 1, stringLength).replace(/\+/g,' ')); 

       if(!paramObject[key]) { 
        //console.log('paramObject[key] =' + paramObject[key]); 
        paramObject[key] = value; 
        //console.log('paramObject[key] = value = ' + value + paramObject[key]); 
        //console.log(paramObject[key]); 
       }else if(paramObject[key] instanceof Array){ 
        paramObject[key].push(value); 
        //console.log(paramObject[key]); 
       } else { 
        var newArray = []; 
        var existingValue = paramObject[key]; 
        //console.log('existing value: '+ existingValue); 
        //console.log('value: ' + value); 
        newArray.push(existingValue); 
        newArray.push(value); 
        paramObject[key] = newArray; 
       } 

      } 

      //console.log(paramObject); 


      for (key in paramObject) { 

       $('input[name="' + key + '"]').each(function(){ 
        var obj = paramObject[key]; 

        for(prop in obj){ 

         if(obj instanceof Array){ 

          if(obj.hasOwnProperty(prop)){ 
           //console.log(key + '=' + obj[prop]); 
           if($(this).attr('value') == obj[prop]){ 
            $(this).attr('checked','checked');      
           } 
          } 
         }else{ 
          if(obj.hasOwnProperty(prop)){ 
           if($(this).attr('value') == obj){ 
            $(this).attr('checked','checked');      
           } 
          } 
         } 
        } 
       }); 
      } 
+2

어떻게 "작동하지 않습니까?" 대신 무엇을합니까? IE8에서는 어떻게됩니까? 콘솔에 오류가 있습니까? –

답변

3

으로는 IE8이 호스트 오브젝트에 hasOwnProperty() 메서드를 지원하지 않습니다 here 대답했다. 찾고있는 답변에 대한 의견이 있습니다. 행운을 빕니다!

+0

감사합니다. 감사합니다. – Jursels

관련 문제