0

我通过将一些 JavaScript 附加到 DOM 来动态加载它。

在 JavaScript 结束时,我想创建一个自定义事件来提醒脚本已完成的其余代码。

这是我所拥有的:

Su.throwEvent = function(){
    var load_complete = document.createEvent("HTMLEvents");
    load_complete.initEvent( "focus", true, false );
    document.getElementById( 'ue_email' ).dispatchEvent( load_complete );
};

这不起作用,因为我将它绑定ue_email为用户输入......所以现在每次用户关注输入时它都会触发事件。

创建自定义“隐藏”事件的正确方法是什么。

我在这里看:

https://developer.mozilla.org/en-US/docs/DOM/document.createEvent

谢谢。

4

1 回答 1

1

您可以将其绑定到隐藏的输入控件的onchange事件。

这应该工作得很好,当然也很简单,但是劫持 DOM 的事件系统对我来说似乎有点像 hack。我将创建一个全局事件侦听器函数数组,并从加载的脚本中调用它们:

if (window.loadedListeners) {
    loadedListeners.forEach(function(listener) {
        listener();
    });
}

请记住,Array.forEach()如果要支持 IE7 和 IE8,则需要手动扩展 Array 以包含该方法。您可以使用developer.mozilla.org 上的实现

于 2012-10-10T22:01:01.473 回答