2012-10-10 47 views
0

我正在爲一款遊戲創建一個userscript,它將實時修改頁面的某些部分,以幫助用戶知道他們必須等待多長時間才能執行某些操作。用類似但修改過的腳本功能代替頁面功能

我遇到的問題是遊戲中已經內置了一些AJAX,每三秒鐘它就會調用jQuery.getJSON()函數來抓取信息來更新事物。我的腳本需要讓最終用戶看起來像是實時更新頁面,而不是每3秒鐘更新一次。以及添加額外的信息。不增加額外的請求(遊戲所有者不會那樣)。

爲此,我需要重寫頁面的默認行爲,我需要更改jQuery.getJSON()調用的回調函數以添加我的功能。或者至少完全禁用它,以便我可以寫一個新的。它不像爲舊名稱分配新功能那麼簡單,因爲它沒有名稱,只是在jQuery.getJSON()調用中構建函數。這可能嗎?

頁腳本包含在一個單獨的.js文件btw中,如果這有什麼不同。

回答

1

如果將jQuery.getJSON()調用分配給變量,它將返回一個jqXHR對象,然後您可以通過添加或更改其回調來修改該對象。

如果不公開爲一個變量,而是被簡單地稱爲像這樣

... js blah ... 
jQuery.getJSON("myurl",function(){ 
    more blah 
}); 
... more blah ... 

...然後我相信你了小河沒有槳,作爲成爲一個匿名函數調用沒有手柄。唯一的辦法就是嘗試通過在第一個腳本上加載另一個腳本來覆蓋,但我真的不確定瀏覽器環境的穩定性。

有關$ .ajax()系統如何工作的更多細節,請參閱關於http://api.jquery.com/jQuery.getJSON/http://api.jquery.com/Types/#jqXHR的jQuery參考。