据我所知,CORS不赞成使用此方法,但受JSONP的启发,我尝试了这一点很有趣:
function f(ob) {alert(ob.a)}
s = document.createElement('script')
s.textContent = 'f({a:"hi"})'
document.getElementsByTagName('body')[0].appendChild(s)
这将按预期触发alert()
。但是,
document.getElementsByTagName('body')[0].innerHTML += '<script>alert("Ahoy!")</script>'
和
document.getElementsByTagName('body')[0].insertAdjacentHTML('beforeend', '<script>alert("Ahoy!")</script>')
不触发警报。为什么?