gpt4 book ai didi

javascript - 使用不同的参数初始化对象

转载 作者:行者123 更新时间:2023-11-28 10:07:17 32 4
gpt4 key购买 nike

您好,我有代码替换 document.write,创建一个缓冲区,然后将缓冲区插入文档中:

 var lazyLoad = (function () {

var counter = 0
var buffer = new Array()
function work(options){
window.d = document
var tmp_buffer
d.write = d.writeln = function(s){ tmp_buffer += s}

d.open = d.close = function(){}
s = d.createElement('script')
s.setAttribute('type','text/javascript')
s.setAttribute('src',options.url)
d.getElementById(options.block).appendChild(s)

s.onload = function () {
buffer[counter] = tmp_buffer
console.log(buffer[1])
window.setTimeout(function() {
d.getElementById(options.block).innerHTML += buffer[counter]
}, 0)
counter++
}
}

return {

init: function (options) {

var CONFIG = {
url: '',
block: ''
}

$.extend(CONFIG, options)

random = $('#'+CONFIG.block).attr('rel')
id = $('#'+CONFIG.block).attr('id').replace(random,'')
id = id.replace('DIV','')
size = id.split('X')
ele_width = size[0] || CONFIG.width
ele_height = size[1] || CONFIG.height

$('#'+CONFIG.block).css({
'width':ele_width+'px',
'height':ele_height+'px'
})


$(window).load(function(){
if(options.adfox) {
random = $('#'+CONFIG.block).attr('id')
AdFox_getCodeScript(1, random, CONFIG.url)
}else{
work(options)
}
})
}

}


})();

如果我初始化一次:

lazyLoad.init({
'http://test.com/test.js',
div1
})

但是如果我用其他参数再次调用它:

lazyLoad.init({
'http://test2.com/test.js',
div2
})

第一次初始化不起作用。 缓冲区将为空。我的错误在哪里?

最佳答案

我认为

$(window).load(function(){  

将覆盖事件处理程序。尝试使用:

$(function(){ 

});

相反。我认为它会添加一组事件处理程序。但我可能是错的。请告诉我结果如何。

此外,您似乎没有在本地范围内定义“s”。如果定义变量时没有将“var”放在变量前面,它将在全局范围内创建。

关于javascript - 使用不同的参数初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075756/

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