重复注射参考

时间:2014-03-05 13:03:11

标签: javascript code-injection

我正在开发一些功能,可以在我的客户端页面上添加一些功能。 我只是给他们一些javascript,他们必须添加到他们的页面。 那个javascript作为add的id的标识符(用于构造目的)。

每个添加的javascript都是这样的:

var _adds = _adds || [];
_adds.push(['ID_OF_THE_ADD_XXXXX']);

(function() {
    var script = document.createElement('script');
    script.src = ('https:' == document.location.protocol ? 'https://ssl' : 
        'http://www') + '.myswebsite.com/myjs.js';
    script.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(script);
})();

所以,困难的部分是myjs.js被多次添加到客户页面的头部。 我已经尝试声明一些变量com myjs.js并在这里检查var但是没有成功,因为一切都是异步的。

有没有办法不重复这个?

提前致谢。

1 个答案:

答案 0 :(得分:0)

好吧,在加载prev脚本之前,它已经得到了它再次执行,所以试试这个。

var _adds = _adds || [];
_adds.push(['ID_OF_THE_ADD_XXXXX']);
    (function() {
        if(typeof window.checker ==='undefined'){
            window.checker = true;
            var script = document.createElement('script');
            script.src = ('https:' == document.location.protocol ? 'https://ssl' : 
                'http://www') + '.myswebsite.com/myjs.js';
            script.setAttribute('async', 'true');
            document.documentElement.firstChild.appendChild(script);
        }
    })();