var
global_html_pool = [];
var
global_script_pool = [];
var
global_script_src_pool = [];
var
global_lock_pool = [];
var
innerhtml_lock =
null
;
var
document_buffer =
""
;
function
set_innerHTML(obj_id, html, time) {
if
(innerhtml_lock ==
null
) {
innerhtml_lock = obj_id;
}
else
if
(
typeof
(time) ==
"undefined"
) {
global_lock_pool[obj_id +
"_html"
] = html;
window.setTimeout(
"set_innerHTML('"
+ obj_id +
"', global_lock_pool['"
+ obj_id +
"_html']);"
, 10);
return
;
}
else
if
(innerhtml_lock != obj_id) {
global_lock_pool[obj_id +
"_html"
] = html;
window.setTimeout(
"set_innerHTML('"
+ obj_id +
"', global_lock_pool['"
+ obj_id +
"_html'], "
+ time +
");"
, 10);
return
;
}
function
get_script_id() {
return
"script_"
+ (
new
Date()).getTime().toString(36)
+ Math.floor(Math.random() * 100000000).toString(36);
}
document_buffer =
""
;
document.write =
function
(str) {
document_buffer += str;
}
document.writeln =
function
(str) {
document_buffer += str +
"\n"
;
}
global_html_pool = [];
var
scripts = [];
html = html.split(/<\/script>/i);
for
(
var
i = 0; i < html.length; i++) {
global_html_pool[i] = html[i].replace(/<script[\s\S]*$/ig,
""
);
scripts[i] = {text:
''
, src:
''
};
scripts[i].text = html[i].substr(global_html_pool[i].length);
scripts[i].src = scripts[i].text.substr(0, scripts[i].text.indexOf(
'>'
) + 1);
scripts[i].src = scripts[i].src.match(/src\s*=\s*(\
"([^\"]*)\"|\'([^\']*)\'|([^\s]*)[\s>])/i);
if (scripts[i].src) {
if (scripts[i].src[2]) {
scripts[i].src = scripts[i].src[2];
}
else if (scripts[i].src[3]) {
scripts[i].src = scripts[i].src[3];
}
else if (scripts[i].src[4]) {
scripts[i].src = scripts[i].src[4];
}
else {
scripts[i].src = "
";
}
scripts[i].text = "
";
}
else {
scripts[i].src = "
";
scripts[i].text = scripts[i].text.substr(scripts[i].text.indexOf('>') + 1);
scripts[i].text = scripts[i].text.replace(/^\s*<\!--\s*/g, "
");
}
}
var s;
if (typeof(time) == "
undefined
") {
s = 0;
}
else {
s = time;
}
var script, add_script, remove_script;
for (var i = 0; i < scripts.length; i++) {
var add_html = "
document_buffer += global_html_pool[
" + i + "
];\n
";
add_html += "
document.getElementById('
" + obj_id + "
').innerHTML = document_buffer;\n";
script = document.createElement("script");
if (scripts[i].src) {
script.src = scripts[i].src;
if (typeof(global_script_src_pool[script.src]) == "undefined") {
global_script_src_pool[script.src] = true;
s += 2000;
}
else {
s += 10;
}
}
else {
script.text = scripts[i].text;
s += 10;
}
script.defer = true;
script.type = "text/javascript";
script.id = get_script_id();
global_script_pool[script.id] = script;
add_script = add_html;
add_script += "document.getElementsByTagName('
head
').item(0)";
add_script += ".appendChild(global_script_pool['
" + script.id + "
']);\n";
window.setTimeout(add_script, s);
remove_script = "document.getElementsByTagName('
head
').item(0)";
remove_script += ".removeChild(document.getElementById('
" + script.id + "
'));\n";
remove_script += "delete global_script_pool['
" + script.id + "
'];\n";
window.setTimeout(remove_script, s + 10000);
}
var end_script = "if (document_buffer.match(/<\\/script>/i)) {\n";
end_script += "set_innerHTML('
" + obj_id + "
', document_buffer, " + s + ");\n";
end_script += "}\n";
end_script += "else {\n";
end_script += "document.getElementById('
" + obj_id + "
').innerHTML = document_buffer;\n
";
end_script += "
innerhtml_lock =
null
;\n
";
end_script += "
}";
window.setTimeout(end_script, s);
}
相关推荐
然而,有时候我们在使用`innerHTML`插入包含JavaScript代码的HTML时,会发现这些脚本并没有像预期那样执行。这个问题主要涉及到浏览器的安全机制和DOM解析过程。 首先,我们需要理解`innerHTML`的工作原理。当设置...
解决 Ajax 返回 innerHTML 中 ...解决 Ajax 返回 innerHTML 中 JavaScript 不能运行问题的关键是将 JavaScript 代码从 Ajax 返回的数据中提取出来,并将其添加到 `<head>` 中,让浏览器能够正确地解析和执行。
在给定的文件`temp.js`中,我们可以预想它可能包含了用于操作HTML元素的JavaScript代码。为了确保这些代码能够正确执行,我们需要考虑脚本是否正确地插入到HTML中,以及是否使用了`async`或`defer`属性。 另一方面...
尽管不能直接访问提供的博客链接,上述内容是基于对`innerHTML`常见讨论的推测。在实际编程中,理解并有效使用`innerHTML`对于构建交互式和动态的Web应用至关重要。通过学习如何适当地操作DOM,可以提升网页的用户...
这种方式需要处理脚本的文本内容,确保它们作为JavaScript代码执行。 通过以上步骤,我们可以确保无论是在IE还是其他浏览器中,`innerHTML`插入的`<script>`脚本都能被正确执行。这种方法虽然需要更多的代码和处理...
2. **在地址栏中执行代码**:将给定的 JavaScript 代码 `javascript:document.writeln(document.body.innerHTML)` 复制并粘贴到浏览器的地址栏中,然后按 Enter 键执行。 3. **查看结果**:执行后,当前页面会被覆盖...
如果需要测试外部引入的JavaScript代码,往往需要刷新页面或者直接在控制台中输入代码执行。 6. 知识点整合:将上述知识点结合起来,我们可以构思一个简单的网页表单,其中包含两个输入字段供用户分别输入"数量"和...
JavaScript,简称JS,是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,特别是在前端开发领域中,JS代码被用来实现交互性、动态效果以及数据处理。本压缩包“超强js代码”中包含的JS源码,无疑是为了...
"100个常用js代码"这个主题涵盖了一系列实用的JavaScript代码片段,旨在帮助开发者提升工作效率,解决日常编程中遇到的问题。下面将详细解析这些知识点: 1. **DOM操作**:JavaScript可以操作文档对象模型(DOM),...
本文将围绕“100个可以直接拿来用的JavaScript代码”这一主题,详细阐述其中可能涵盖的常见JavaScript知识点,以及它们在实际开发中的应用。 1. **变量与数据类型**:JavaScript支持var、let和const声明变量,以及...
本压缩包“超实用的JavaScript代码”旨在为初学者提供一系列实用的代码示例,帮助他们快速理解和掌握JavaScript的基础及进阶技巧。 1. **基础语法** JavaScript的基础包括变量声明(`var`, `let`, `const`),数据...
开发者可以在编辑器中编写代码,编辑器会立即解析并执行这些代码,展示在浏览器窗口中,这样可以快速检查语法错误或设计问题。例如,你可以输入HTML结构,然后添加JavaScript代码来改变某个元素的颜色或者动态加载...
"站长常用200个js代码"集合了诸多实用的JavaScript代码片段,这些代码对于网站管理员(站长)来说尤其有用,能够帮助他们更高效地构建和维护网站。 1. **页面交互**:JS可以实现丰富的页面交互效果,如按钮点击响应...
这个压缩包包含了一个基于JavaScript实现的轻量级代码编辑器项目,其核心特点在于实时反馈,使得学习者能够迅速看到代码更改后的影响,从而加深对编程概念的理解。 1. **实时编辑器的工作原理**: 实时代码编辑器的...
本文将详细解析"javascript特效代码(最新)"中的关键知识点,包括但不限于特效实现、代码规范和最佳实践。 首先,JavaScript特效代码是网页设计中提升用户体验的关键。这些特效可能涵盖滑动面板、滚动动画、图像...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言。它主要负责网页的动态交互,赋予静态HTML页面活力。本压缩包“js代码示例.rar”包含了一系列基础到进阶的JS应用实例,共计九十多个,涵盖了下拉列表...
然而,当遇到"jQueryPost页面不能刷新"的问题时,这通常意味着在使用`$.post`函数时存在错误,导致页面无法正常刷新或数据更新不成功。根据提供的描述和部分代码,我们可以分析并解决这个问题。 首先,让我们看看...
这些元素可以通过ID或者类名被JavaScript代码选中并操作。 ```html <select id="province"></select> <select id="city"></select> ``` 3. **初始化**:利用JavaScript将数据填充到HTML元素中,当页面加载完成后...
当你尝试在IE中执行上述代码时,浏览器会报错,但错误信息可能不会明确指出问题出在innerHTML。为了解决这个问题,IE提供了innerText属性作为替代。innerText允许设置或获取元素的纯文本内容,而不是HTML。因此,...
在网页设计和开发中,漂浮广告是一种常见的广告展示方式,它通过JavaScript(JS)实现,可以在用户浏览页面时保持在屏幕的特定位置持续显示。本文将深入探讨漂浮广告JS的相关知识点,以及如何创建和应用这样的代码。...