gpt4 book ai didi

javascript - 重新定义变量

转载 作者:行者123 更新时间:2023-11-30 13:27:14 27 4
gpt4 key购买 nike

你好,我有替换 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
})

第一个初始化不会工作。 buffer 将为空。我的错误在哪里?

最佳答案

通过调用 $.extend(CONFIG, options),您将用新的配置替换以前的配置。

相反,您应该创建一个数组并将每个 options 附加到它。

关于javascript - 重新定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8050798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com