在加载之前修改对象DOM

时间:2016-11-07 16:34:46

标签: javascript jquery

我想知道在完全加载之前是否可以修改DOM中的对象。我正在尝试修改以下对象:

(function (g) {
    var d = document, 
        i, 
        am = d.createElement('script'), 
        h = d.head || d.getElementsByTagName("head")[0],
        aex = {
            "src": "google.com",
            "type": "text/javascript",
            "async": "true",
            "data-vendor": "acs",
            "data-role": "gateway"
        };
        for (var attr in aex) { 
            am.setAttribute(attr,aex[attr]); 
        }
        h.appendChild(am);
        g['acsReady'] = function () {
            var aT = '__acsReady__', 
                args = Array.prototype.slice.call(arguments, 0),
                k = setInterval(function () {
                    if (typeof g[aT] === 'function') {
                        clearInterval(k);
                        for (i = 0; i < args.length; i++) {
                            g[aT].call(g, function(fn) { 
                                return function() { 
                                    setTimeout(fn, 1) 
                                };
                            }(args[i]));
                        }
                    }
                }, 50);
        };
})(window);
例如,

更改上面

中src属性的值

1 个答案:

答案 0 :(得分:1)

Javascript执行在第一次呈现页面之前开始。 DOM Parser会通知Mutation Observers,因此您可以在解析器添加元素后立即删除元素或修改它们。

这个问题有一个例子可以帮助您实现:

Using Mutation Observer