<link />元素的'load'事件没有触发,'onload'也不可操作

时间:2016-11-29 11:41:36

标签: javascript html css onload dom-events

2010年问了last thread on this,据我所知,对元素的'load'事件仍然不完整(或没有)支持。我的代码:

function loadedCb(){ console.log("Loaded!"); };
function errorCb(){ console.log("Error!"); };

var file = document.createElement("link");
file.type = "text/css";
file.rel = "stylesheet";
file.addEventListener('load', loadedCb); // or: file.onload = loadedCb;
file.addEventListener('error', errorCb); // or: file.onerror = errorCb;

file.src = "theDir/theFile.css";         // should immediately start to load.
document.getElementsByTagName('head')[0].appendChild(file);

当这个代码在Firefox 49.0.2中运行时,既没有调用回调(并且CSS文件也从不在任何时候加载,这可能表明我做错了什么)。但是,将.js文件中的<script>元素加载的相应代码完美无缺。

截至2016年,在加载(或错误)CSS文件时运行回调是否有任何优雅的解决方案?或者我做了一些基本错误的事情?我不是偶然在我的项目中使用JQuery。

1 个答案:

答案 0 :(得分:0)

发现主要问题:设置href而不是#GunTracking-detail-datatable{ background-color:#eee; } 。午餐后会检查事件是否正在开火,但是在短暂的一瞥中,它看起来到目前为止一直在工作。