重新定义变量
Redefining variable
你好,我有代码取代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(CONFIG, options)
,您将用新的配置替换以前的配置。
options
附加到其中。
相关文章:
- 得到"全局未定义“;全局变量定义清楚时出错
- 使用变量的名称,然后为该变量定义函数
- Javascript 从 php 变量定义 getElementById()
- 使用变量定义宽度和高度
- 函数内部的JavaScript全局变量定义
- Javascript变量定义-澄清
- 为多个变量定义相同的类型,在Webstorm中识别
- 如何用变量定义一个数组,然后用一个数字填充每个数组
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- 为什么要显式将变量定义为未定义
- Gulp/Grunt 获取触笔工作表中的所有颜色变量,并将它们作为变量定义写入文件
- 是否可以在 Node.js 中为模块变量定义 SET 函数
- ES6 块范围的变量定义作为条件
- 使用 jQuery 获取由变量定义的文本输入的值
- :gt()选择器,为变量定义的索引
- 如何在ASP.NET中将Javascript变量定义为Session
- 带有用户输入的ajax请求变量定义有问题
- 使用ElasticSearch搜索变量定义字段
- 变量定义,不同的输出
- JavaScript变量定义和范围