簡體   English   中英

使用JavaScript函數更改函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM