讀書筆記-《JavaScript高級程序設計》-第2章 在HTML中使用JavaScript

<script>元素

  • 帶有src屬性的標籤之間再有js的代碼,只會下載和執行外部腳本文件,忽略潛入的代碼
<script src="./test.js">
        alert(2)  //這一段代碼會被忽略,只執行test.js的代碼(即便裏面是空)
</script>
複製代碼
  • <script>標籤的src能夠引用外部域的js文件,這就是爲何能夠<script>標籤解決跨域的問題
function jsonp(setting) {
    setting.data = setting.data || {};
    setting.key = setting.key || 'jsoncallback';
    setting.callBack = setting.callBack || function(){};
    setting.data[setting.key] = '_getData_';
    
    window._getData_ = function(data) {
      setting.callBack(data)
    }
    
     let script = document.createElement('script')
     let query = [];
    for(let key in setting.data) {
      query.push(key + '=' + encodeURIComponent(setting.data[key]))
    }
    script.src = setting.url + '?' + query.join('&');
    document.head.appendChild(script);
    document.head.removeChild(script);
  }
  
  jsonp({
      url: 'https://photo.sina.cn/aj/index',
      key: 'jsoncallback',
      data: {
        page: 1,
        cate: 'recommend'
      },
      callBack: function(ret){
        console.log(ret)
      }
    })
複製代碼

代碼參考:zhuanlan.zhihu.com/p/22600501json

相關文章
相關標籤/搜索