1
你好,我有代碼代替document.write
,使緩衝區和比推緩衝區到文檔:重新定義變量
var lazyLoad = (function() {
var CONFIG = {
block: '',
url: ''
};
function work(){
buffer = ''
d.write = d.writeln = function(s){
buffer += s
}
d.open = d.close = function(){}
s = d.createElement('script');
s.setAttribute('type','text/javascript');
s.setAttribute('src',CONFIG.url);
d.getElementById(CONFIG.block).appendChild(s)
s.onload = function() {
window.setTimeout(function() {
console.warn(CONFIG.block + ' ' + buffer)
d.getElementById(CONFIG.block).innerHTML += buffer;
buffer = '';
}, 0);
}
}
return {
init: function (options) {
$.extend(CONFIG, options);
window.d = document
window.onload = function(){
work()
}
}
}
})();
如果我初始化它一次:
lazyLoad.init({
url: 'http://test1.com/test1.js',
block: DIVID1
})
但是,如果我再次調用它與其他參數:
lazyLoad.init({
url: 'http://test2.com/test2.js',
block: DIVID2
})
第一init不會工作。 buffer
將爲空。我的錯誤在哪裏?
我有'緩衝區'的問題。第一次初始化後它是空的,但在第二次之後它有一些代碼。我認爲'$ .extend'不能代替我的緩衝區。 – rsboarder