<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/22600501