用户单击元素时加载第三方JavaScript

时间:2012-03-01 17:27:50

标签: javascript

我知道当用户通过创建脚本元素并通过document.appendChild将其注入页面时单击元素时,我可以注入脚本。但是,脚本正在侦听onload和onDOMContentReady(或他们自己的本地domReady事件,不确定)。

如果我仅在用户单击元素时注入脚本,则onload / onDOMContentReady的回调将永远不会触发,因为这些事件已经过了。

有什么想法吗?这个第三方脚本会提取所有这些其他请求,但这不是页面加载的最佳选择。

1 个答案:

答案 0 :(得分:0)

编辑:我再次阅读了这个问题......如果你使用的是像jQuery这样的东西,它会在任何其他文档就绪调用中触发你的处理函数,即使已经触发了文档就绪。它只会立即执行该功能。如果你正在寻找一种纯粹的javascript方法,你需要额外考虑检查dom ready是否已被触发,并自行激活你的函数,否则将它附加到dom ready回调。

我没有看到像这样做的问题(简洁地使用jquery):

// on document ready
$( function() {

    // attach the click handler
    $('#loadScript').click( function( e ) {

        // on click, get the script
        $.getScript('path/to/your/script.js', function() {

            // your script is loaded, so what you need from here
            // to handle this click event.
        });
    });
});

我认为你有点过分思考。您只需要担心一旦dom元素准备好就可以加载脚本。您也可以使用类似require.js的内容。