不多說(shuō)看代碼
function jsonp(url, parameter, callback) {
// 生成一個(gè) script 節(jié)點(diǎn)
var script = document.createElement("script");
// 生成一個(gè)隨機(jī)字符串作為回調(diào)函數(shù)名
var randomKey = "cbf" + new Date().getTime();
// 將callback以生成的隨機(jī)串為屬性名添加到window對(duì)象上,這樣雇盖,在頁(yè)面的任意位置都能以window[randomkey]()形式訪(fǎng)問(wèn)回調(diào)函數(shù)
window[randomKey] = callback;
url += "?callback=" + randomKey;
// 拼接參數(shù)
if (parameter) {
for (var p in parameter) {
url += ("&" + p + "=" + parameter[p]);
}
}
// 設(shè)置script節(jié)點(diǎn)的src屬性
script.src = url;
// 拼接到dom結(jié)構(gòu)中
document.body.appendChild(script);
// 操作完成后移除script標(biāo)簽
script.onload = function () {
document.body.removeChild(script);
};
}