Jsonp的實現方式

最簡單的Jsonp實現方式如下:

var Jsonp=document.creatElement("script");
//Firefox:onload    IE:onreadystatechange
Jsonp.οnlοad=Jsonp.onreadystatechange=function(){
    //onreadystatechange,僅IE
    if(!this.readyState||this.readyState==="loaded"||this.readyState==="complete"){
        alert($("#demo").html());
        Jsonp.οnlοad=Jsonp.onreadystatechange=null; //防止內存泄漏
    }
}
Jsonp.type="text/javascript";
Jsonp.src="http://www.***.com/js/jQuery.js";
//在head之後添加js文件
document.getElementsByTagName("head")[0].appendChild(Jsonp);

我們通過創建script,指定它的src等屬性,然後插入head執行。建議onload、onreadystatechange寫在src賦值之前,防止載入javascript太快而沒有給onload、onreadystatechange賦值(image對象在IE下具有此類現象)。

Jsonp實例:
首先我們可以定義一個函數來執行Jsonp返回的數據,然後通過Jsonp的src傳此函數給後臺,進行處理,返回可執行的函數。例如下面的代碼。

function JsonpHandle(a){
    alert(a);
}
var Jsonp=document.creatElement("script");
Jsonp.type="text/javascript";
Jsonp.src="http://www.***.com/Jsonp.php?callback=JsonpHandle";
//在head之後添加javascript文件
document.getElementsByTagName("head")[0].appendChild(Jsonp);

後臺Jsonp.php的代碼:

echo $_GET["callback"]."('hello,world')";
發佈了39 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章