我只能下載谷歌地圖API第3回調時是一個全球性的功能:加載Google Maps API時如何提供非全局回調?
function onMapLoad() {
alert('API is loaded');
}
var script = new Element(
'script', {
type: 'text/javascript',
src: 'http://maps.googleapis.com/maps/api/js?key='
+ Map.API_KEY
+ '&sensor=false&callback=onMapLoad'
}
);
document.body.appendChild(script);
我不想使用全局函數。相反,我想調用一個單例方法:Map.instance().onLoaded
。
// ...
+ '&sensor=false&callback=Map.instance().onLoaded'
// ...
當我嘗試這樣做時,在加載Google腳本時出現NetworkError:403禁止。這似乎暗示Google的服務不喜歡我的回調函數字符串。回調函數本身沒有問題。
根據該文件,'google.load'僅支持地圖V2。我在v3上試了一下,它說:「* Google Maps API服務器拒絕你的請求,請求中指定的」sensor「參數必須設置爲」true「或」false「。*」指定'other_params:{sensor:假}也沒有幫助。 – Pwner
對不起,我應該把傳感器放在javascript行中試試google.load(「maps」,「3」,{「other_params」:「sensor = false」,「callback」:Map.instance()。onLoaded} );' –
這個原因起作用的原因是加載器腳本將自己作爲回調函數進行發送,該回調函數將回調函數(parens'()')包含在函數中 –