2011-06-18 98 views
0

我是Google Closure庫的新手,我試圖模擬類似於Jquery的$ .ajax函數的東西。這是我所嘗試的以及我得到的迴應。使用Google Closure進行Ajax調用

觸發從Chrome瀏覽器擴展右擊

chrome.contextMenus.create({"title": "sample_closure", "onclick": samp.myProject.fun1,"contexts":['selection']}); 

這將觸發其作爲下面定義的功能FUN1:

samp.myProject.fun1 = function(info,tab) { 
    var string_url = info.selectionText; 
    //String_url works fine and passed to the function below. 
    samp.myProject.getAjaxData(string_url); 
} 

的getAjaxData功能如下。

goog.require("goog.net.XhrIo"); 

samp.myProject.getAjaxData = function(url) { 
    goog.net.XhrIo.send(url, function(event) { 
     alert(event.target.getResponseText()); 
    }); 
} 

但是,當我調用getAjaxData函數時出現此錯誤。

Error in event handler for 'contextMenus': TypeError: Cannot read property 'XhrIo' of undefined 

誰能告訴我在哪裏,我錯了。我檢查了需要傳遞的xhrio.send函數的參數類型,它有字符串類型。

+0

對不起!解決了這個問題.. base.js的路徑導致了這個問題。不要刪除這個問題,因爲你們中的一些人可能面臨同樣的問題並離開他們。所以,**檢查你的路徑base.js的封閉庫,以解決這個問題** –

+0

你應該發表您的評論上面作爲答案,然後等待24小時,並接受它。 (該網站不會讓你在24小時內接受你自己的答案。)這將有助於其他人,因爲有這個問題的人更有可能注意到接受的答案而不是評論。它也會阻止其他人提供可能不正確的答案。 – Trott

+0

當然會這樣做 –

回答

0

解決了這個問題.. base.js的路徑導致了這個問題。

不刪除這個問題,因爲你們中的一些人可能面臨同樣的問題並離開他們。 所以,檢查你的路徑base.js的封閉庫,以解決這個問題