向窗口元素添加属性时是否会触发事件?

时间:2012-07-31 17:41:16

标签: javascript jquery html dom javascript-events

当加载javascript库(比如jQuery)时,它们倾向于在Window元素上创建一个对象。

我正在尝试弄清楚我是如何检测库刚刚加载的时候所以我走上了尝试检测窗口对象的属性更改的路径......

window.addEventListener("DOMAttrModified", invalidate, false);

function invalidate(evt)
{
    console.log('attrChange = ' + evt.attrChange);
}

......这不起作用。

也许有人知道另一种方法来解决此解决方案和检测外部库何时加载的机制。

谢谢, 尼克

P.S。我查看了脚本标记的onload标记,但我担心W3C中的不是

p.p.s。最后,我正在尝试实现一个使用jQuery代码安全的函数。

1 个答案:

答案 0 :(得分:0)

如果您的js代码低于脚本标记,那么请不要担心,html渲染会在脚本标记未加载时停止,因此如果您的js较低,则库已经加载。

您也可以检查是否存在某些变量(例如$)。

if (typeof jQuery != 'undefined') {
  // is loaded
} else {
  // is not loaded
}

或者循环通过间隔:

var interval = setInterval(function () {
  if (typeof jQuery != 'undefined') {
    clearInterval(interval);
    // do what you want
  }
});