[英]Change function with use of JavaScript function
我有一個不是我的網站。 有許多JavaScript函數可以進行ajax調用。 我想知道是否有可能修改這些功能,因此在成功執行ajax請求后,將調用我的JavaScript函數。 也許有可能注入另一個Ajax查詢結果代碼處理程序?
更新
也許我應該添加更多內容...這個ajax調用是通過使用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添加一些內容,以便成功后的請求調用JavaScript函數?
可以替換javascript函數定義。 這是一些簡單的代碼:
<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/來進行嘗試。 但是我不知道是否有可能替換跨站點javascript函數。
源代碼可在此處獲取: 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.