2013-06-12 5 views
2

나는 내 웹 사이트가 있습니다. ajax 호출을하는 많은 JavaScript 함수가 있습니다. 성공적으로 AJAX 요청을 한 후에 자바 스크립트 함수를 호출 할 수 있기 때문에 이러한 함수를 수정할 가능성이 있는지 궁금하다. 어쩌면 아약스 쿼리 결과 코드의 다른 처리기를 삽입 할 가능성이 있습니까? 업데이트JavaScript 기능을 사용하여 기능 변경

은 어쩌면 내가 ...이 아약스 호출이 xajax 라이브러리의 사용으로 실현 뭔가 더 추가해야합니다. 나는 이러한 코드 발견 :

<script type="text/javascript" charset="UTF-8"> 
/* <![CDATA[ */ 
try { if (undefined == xajax.config) xajax.config = {}; } catch (e) { xajax = {}; xajax.config = {}; }; 
xajax.config.requestURI = "xajax_loader.php"; 
xajax.config.statusMessages = false; 
xajax.config.waitCursor = true; 
xajax.config.version = "xajax 0.5 rc1"; 
xajax.config.legacy = false; 
xajax.config.defaultMode = "asynchronous"; 
xajax.config.defaultMethod = "POST"; 
/* ]]> */ 
</script> 

내가 xajax 라이브러리를 모르겠어요,하지만 어쩌면 성공은 자바 스크립트 함수를 호출 한 후 이렇게 요청을 config (설정) 뭔가를 추가하는 방법은 무엇입니까?

+0

사이트의 모든 사용자? 아니 서버를 해킹하지 않고, 아니. –

+0

아니요, 아니요. 나를 위해 - 해킹은 안된다.) 모든 아약스 성공 후 소리를 내거나 간단하게 만들기 위해 경고 대화 상자를 표시하는 코드를 삽입하고 싶다. – karex

+2

당신에게 적합하다면 크롬 확장을 고려해보십시오. http://stackoverflow.com/questions/8559482/intercept-javascript-requests-with-chrome-extension – izb

답변

1

자바 스크립트 함수 정의를 바꿀 수 있습니다. 다음은 간단한 코드입니다.

<script> 
    function xyz() {alert('xyz');} 
</script> 
<body> 
    <button onclick="xyz();">Run xyz</button> 
    <button onclick="alert(xyz);">Show xyz</button> 
    <button onclick="xyz=function(){alert('xxxxyz');};">Replace xyz</button> 
</body> 

나는 이것을 시험해보기 위해 http://jsfiddle.net/k565L/을 만들었습니다. 하지만 사이트 간 자바 스크립트 기능을 대체 할 수 있는지 여부는 알 수 없습니다.

0

소스 코드가 여기에 있습니다 : https://github.com/Xajax/Xajax/blob/master/xajax_js/xajax_core_uncompressed.js

당신은 같은 일을 고려해 볼 수 있습니다 :

xajax.origCompleteResponse = xajax.completeResponse; 
xajax.completeResponse = function(oRequest) { 
    // Here you could do anything you want. 
    // For example check the request object: 
    console.log(oRequest); 
    // And then return a call to the original function: 
    return xajax.origCompleteResponse.apply(xajax.origCompleteResponse, arguments); 
}; 

같은 일을하고있는 또 다른 방법 :

(function() { 
    var super = xajax.completeResponse; // You can use any variable name you like. 
    xajax.completeResponse = function(oRequest) { 
     // Here you could do anything you want. 
     // For example check the request object: 
     console.log(oRequest); 
     // And then return a call to the original function: 
     return super.apply(super, arguments); 
    }; 
}()); 

은 정의를 여기 참조 : https://github.com/Xajax/Xajax/blob/master/xajax_js/xajax_core_uncompressed.js#L3666

관련 문제