Javascript 动态追加的OnLoad事件未触发<;风格>;在iPad上
有人知道为什么在以下情况下,onload事件不会在iPad上触发吗?我尝试过使用jQuery$.load()和纯javascript,但仍然没有效果。我的google fu不足以找到答案:(Javascript 动态追加的OnLoad事件未触发<;风格>;在iPad上,javascript,ios,ipad,onload,Javascript,Ios,Ipad,Onload,有人知道为什么在以下情况下,onload事件不会在iPad上触发吗?我尝试过使用jQuery$.load()和纯javascript,但仍然没有效果。我的google fu不足以找到答案:( 演示:我知道FireFox和Safari没有链接样式表的加载事件,所以iOS Safari可能也没有。我个人通过对样式表发出ajax请求,然后将响应放在标记中来解决这个问题 我已经更新了您的JSFIDLE: 如果有兴趣的话,这里是为那些不依赖jQuery的人准备的香草js:Thank Regis!:)我认为
演示:我知道FireFox和Safari没有链接样式表的
加载事件,所以iOS Safari可能也没有。我个人通过对样式表发出ajax请求,然后将响应放在
标记中来解决这个问题
我已经更新了您的JSFIDLE:
如果有兴趣的话,这里是为那些不依赖jQuery的人准备的香草js:Thank Regis!:)我认为现在可以这样做,因为我们正在从同一个域加载样式表,但我们也在考虑将其中一些样式表移动到另一个域,然后我们会再次遇到同样的问题:(
var head = document.head || document.getElementsByTagName('head')[0];
var linkEl = document.createElement('link');
linkEl.type = 'text/css';
linkEl.rel = 'stylesheet';
linkEl.href = "my_stylesheet.css";
// This doesn't work on ipad
linkEl.onload = function() {
alert('css is loaded');
}
head.appendChild(linkEl);
function loadCss(src, callback){
jQuery.ajax({
url: src,
success: function(response){
// Create Stylesheet
var style = document.createElement('style');
style.type = 'text/css';
style.media = 'screen';
if(style.styleSheet){
style.styleSheet.cssText = response;
}else{
style.appendChild(document.createTextNode(response));
}
document.head.appendChild(style);
callback && callback();
}
});
}
loadCss('/css/normalize.css', function(){ alert('loaded!'); });