2012-11-26 4 views
0

이 코드는 데이터가 응답 서블릿의 행을 포함하는 DWR 객체 인 곳입니다. img.onclick은 IE9를 사용하여 작동하지만 IE8에서도 작동해야합니다. 어떤 생각? 감사합니다.JS 대상이 작동하지 않습니다. 예 : 8

function functionA(data){ 
    var getPrintCred = function(data) { 
         var img = document.createElement("img"); 
         img.src = "images/image1.jpg"; 
         img.style.width="20px"; 
         img.style.height="18px"; 
         img.alt = data.field1; 
         img.title = getRegimen; 
         img.onclick = function(target) { functionB(target) }; 
         return img; 
    }; 
} 

function functionB(data){ 
       var var1= data.target.title; 
       var var2= data.target.alt; 
       if (var1 != null && var1 == "IM") 
        var1 = "valueA"; 
       else 
        var1 = "valueB"; 
       functionC(var2,var1); 
} 

function functionC(param1, param2){ 
alert ('Using IE 9 works, but IE8 no works...help me!'+param1+'-'param2); 
} 
+1

왜 functioncl을 onclick으로 감쌀 것입니까? 그냥 'img.onclick = functionB' 일 수는 없습니까? 문제를 해결할 수는 없지만 코드를보다 명확하게 만듭니다. – tjameson

+0

getPrintCred는 functionA에 대해 로컬이며 functionA가 실행을 완료하면 범위를 벗어납니다. 아무 것도 변하지 않을 때 왜 그걸로도 아무 것도하지 않습니다. –

+0

가능한 [Javascript IE Event] (http://stackoverflow.com/questions/960419/javascript-ie-event) –

답변

1

즉 8 이벤트 객체의 target 속성을 지원하지 않습니다, 당신은 srcElement 속성을 사용합니다. 어떤 이벤트 객체가 onclick 이벤트 핸들러에 전달되는 것처럼 당신은 대체로 window.event를 전달할 수 있도록

function functionB(data){ 
      var var1= (data.target || data.srcElement).title; 
      var var2= data.target.alt; 
      if (var1 != null && var1 == "IM") 
       var1 = "valueA"; 
      else 
       var1 = "valueB"; 
      functionC(var2,var1); 
} 

또한 그것은 보인다.

img.onclick = function(target) { functionB(target || event) }; 

http://jsfiddle.net/mowglisanu/wkB6K/

+0

시도해 보겠습니다 ... – user1538369

+0

정말 고마워요! – user1538369

0

시도 아래 하나의 IE에서

function functionA(data){ 
    var getPrintCred = function(data) { 
     var img = document.createElement("img"); 
     img.src = "images/image1.jpg"; 
     img.style.width="20px"; 
     img.style.height="18px"; 
     img.alt = data.field1; 
     img.title = getRegimen; 
     img.onclick = function(target) { 
      target = target || window.event; 
      functionB(target); 
     }; 
     return img; 
    }; 
} 

function functionB(data){ 
    var var1= data.target.title; 
    var var2= data.target.alt; 
    if (var1 != null && var1 == "IM") 
     var1 = "valueA"; 
    else 
     var1 = "valueB"; 
    functionC(var2,var1); 
} 

function functionC(param1, param2){ 
    alert ('Using IE 9 works, but IE8 no works...help me!'+param1+'-'param2); 
} 

이벤트 객체가 이벤트 처리기 메서드에 인수로 전달하지만, 글로벌 부동산 window.event 객체에서 사용할 수 있습니다되지 않는다 .

관련 문제