2014-04-04 7 views
0

IE가 자체 컨테이너에 IE를 실행하는이 오래된 "닫힌"시스템이 있는데, 이는 브라우저 개발자 도구를 사용할 수 없기 때문에 원시인처럼 코딩해야한다는 것을 의미합니다. 원격 시스템에서 반환되는 객체를 콘솔에서 엑스레이로 변환합니다.jQuery 함수에 click 이벤트를 통해 json 전달하기

지금 내가보고있는 특정 기능은 표준 JSON 개체 인 것을 알기에 제 3 자의 콜백입니다 (복잡해집니다).

function core_OnUeDeltaItemsUpdate(dataType, oData) 
{ 
    if (dataType == "Units") 
    { 
     // Bail if dispatch report xml hasn't been loaded yet. 
     if (oXml == null) 
      return; 

     ..... does lots of stuff 

     // Reload the content in case any of our displayed units changed 
     processUeDelta.click(); 
    } 
} 

... at the bottom of the page 

<button style="display:none;" type="button" id="processUeDelta"/> 

와 나는 지금

$(function(){ 
    $("#processUeDelta").click(function(){ 
     var i = 0; 
     alert(this.ueDelta); 
     for(var propertyName in this.ueDelta) 
     { 
      i++; 
      alert("property " + i + ": " + oData[propertyName]); 
     } 
    }); 
}); 

jQuery를

를 사용하는 것이 기대했다 자바 스크립트 파일 중 하나로, OData을 구문 분석 할 수 없습니다 숨겨진 버튼 자체를 결합 현재 마지막 기능을 부착. 나는 여기 두 가지에 붙어있다.

  1. 내가이 첨부 된 이벤트 핸들러 내가이 디자인에 너무 치열하지 않다
  2. 에 하나로, OData 오브젝트를 통과 할 방법을 잘 모르겠어요, 아마 또 다른 방법은 내가 중간 버튼을 지금 꺼낼 수 있었다있다 그런 다음 JSON 데이터 객체 oData를 처리 할 수 ​​있습니다. 노트의

포인트 :

  • 이이 데이터 펌프를 기반으로, 그래서이 콜백은 5 초 평균 호출되고있다.
  • jQuery 1.7.1을 사용하는 것으로 제한됩니다.
  • 개체를 볼 수 없으며 브라우저가 테스트 장치 역할을 할 수 없으며 응용 프로그램 외부에서 테스트 할 수있는 너무 많은 움직이는 부분이 있습니다.
+0

'core_OnUeDeltaItemsUpdate' 함수를 편집 할 수 없습니까? – NaNpx

+0

@NaNpx는 내가 연주하는 곳입니다. 만약 내가 보지 못하는 방법을 볼 수 있다면 제발, 계몽 해주세요 – SteveMustafa

+0

'core_OnUeDeltaItemsUpdate'를 업데이트 할 수 있다면 숨겨진 버튼에서 이벤트를 트리거하여 데이터를 전달하는 이유는 무엇입니까? jQuery 파일에 함수를 만들고'oData'를 매개 변수로 전달하는'core_OnUeDeltaItemsUpdate'에서 호출 할 수 있습니다. – NaNpx

답변

1

core_OnUeDeltaItemsUpdate 기능을 직접 바꿀 수 있으며 원래 core_OnUeDeltaItemsUpdate 기능을 호출 할 수 있습니다. jQuery 파일에서 다음과 같이하십시오.

$(document).ready(function(){ 
    window._core_OnUeDeltaItemsUpdate = core_OnUeDeltaItemsUpdate; 

    window.core_OnUeDeltaItemsUpdate = function(dataType, oData){ 

     // pass the parameters into the original function 
     _core_OnUeDeltaItemsUpdate(dataType, oData); 

     // do whatever you need to do with oData 
     var i = 0; 
     alert(this.ueDelta); 
     for(var propertyName in this.ueDelta) 
     { 
      i++; 
      alert("property " + i + ": " + oData[propertyName]); 
     } 
    } 
}); 
관련 문제