最近作了一個表單廣告,須要從接口讀取數據,作完發現谷歌火狐下正常,360兼容和IE瀏覽器沒法獲取數據,如下是鮮明的對比:javascript
調試發現報錯了:html
而後開發把接口改爲支持windowname,一開始有點懵,什麼是windowname?還好,開發還發了使用例子給我,看了是利用了iframe去加載數據,仍是有些地方看不懂,因而問度娘,看完這個就略懂了:http://www.cnblogs.com/zichi/p/4620656.html,禁不住感嘆原來還有這種方式。java
下面貼出個人代碼:瀏覽器
function domainData(url, fn) { var isFirst = true; var iframe = document.createElement('iframe'); iframe.style.display = 'none'; var loadfn = function(){ if(isFirst){ iframe.contentWindow.location = 'proxy.html'; //該html文件要與調用該方法的頁面在同一域名,目錄下,否則仍是失敗 isFirst = false; } else { var data = eval('(' + iframe.contentWindow.name + ')'); fn(data); iframe.contentWindow.document.write(''); iframe.contentWindow.close(); document.body.removeChild(iframe); iframe.src = ''; iframe = null; } }; iframe.src = url; if(iframe.attachEvent){ iframe.attachEvent('onload', loadfn); } else { iframe.onload = loadfn; } document.body.appendChild(iframe); } //調用 domainData("http://play9.pcbaby.com.cn/baby170217/action/getProductType.jsp?windowname=1", function(data){ if(data.code == 1){ console.log(data); } });