2012-04-25 2 views
1
이 코드가 크롬 & 파이어 폭스에 있지만 몇 가지 힌트를 필요로 ... IE9에서 작동

...인터넷 익스플로러 9 자바 스크립트 변수 범위 지정 문제

var obj = { 
    data: [], 

    json: function() { 
     var self = this; 
     $.getJSON("highscore.json", function(resp) { 
      self.data = resp.splice(0); 
     }); 
    } 
}; 

업데이트 : 당신의 도움에 대한

들으 ..

ie9에서 문제가 발생했습니다. 즉, 즉, 오류 코드 "c00ce56e"가 발생했습니다. 이는 charset의 문제입니다. json으로 요청이 완료 될 때까지 나는 인 데이터 이외는 채워지지 않습니다,

들으은 @ 모든

+6

"작동하지 않음"이란 정확히 무엇을 의미합니까? – Sirko

+0

@ 실코. 컴퓨터가 소리를냅니다. – gdoron

+0

컴퓨터를보아야하고 들리지 않아야합니다. 소리를 만드는 모든 웹 사이트는 확실히 망가져 있습니다. –

답변

4

귀하의 코드가 나에게 잘 보이는 ... PHP는 스크립트에서 다른 헤더를 시도 할 것이다 아약스가 비동기이기 때문에 순간적이지 않습니다.

obj.json(); 
alert(obj.data); // [] 
setTimeout(function(){ 
    alert(obj.data); // ["foo","bar","foobar"] 
},5000); 

나는 당신의 객체라고 요청에 속성을 추가하고 그 안에 $ .getJSON 요청을 저장하는 것이 좋습니다
업데이트. 이 시점에서 데이터를 객체에 직접 저장하는 것은 이해가되지 않습니다. 왜냐하면 당신은 항상 요청으로부터 그것을 얻을 수 있기 때문입니다.

var obj = { 
    request: {done:$.noop,fail:$.noop,always:$.noop}, 

    json: function() { 
     this.request = $.getJSON("highscore.json"); 
    } 
}; 
obj.json(); 
// you can run the following as many times as you need to use the data. 
obj.request.done(function(data){ 
    alert(data.splice(0)); 
}); 

그냥 현재 형태의 당신이 요청에 콜백을 추가 할 수 있습니다() .json 호출 할 필요가 있습니다.

+0

+1. 다음 줄을 추측하는 것은'$ (something) .text (obj.data [0])'입니다. –