<script>
/* innerhtml.js
* Copyright Ma Bingyao <andot@ujn.edu.cn>
* Version: 1.9
* LastModified: 2006-06-04
* This library is free. You can redistribute it and/or modify it.
* http://www.coolcode.cn/?p=117
*/
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);
}
</script>
/****************************调用****************************/
<script>
set_innerHTML(OperatorId,"<script>jsCode</script>");
</script>
/* innerhtml.js
* Copyright Ma Bingyao <andot@ujn.edu.cn>
* Version: 1.9
* LastModified: 2006-06-04
* This library is free. You can redistribute it and/or modify it.
* http://www.coolcode.cn/?p=117
*/
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);
}
</script>
/****************************调用****************************/
<script>
set_innerHTML(OperatorId,"<script>jsCode</script>");
</script>
发表评论
-
js计算出生年龄
2013-06-22 14:56 881<html> <head> ... -
提交数据时,用层覆盖父页面
2011-04-22 13:52 993<script LANGUAGE="J ... -
frame框架
2011-01-18 17:22 908<frameset rows="20% ... -
Ajax 抓页面
2010-12-17 17:37 789引用 <html> <head> ... -
js 打印部分页面
2010-12-14 13:38 1155//打印js function preview() ... -
页面实现打印功能
2010-11-29 15:38 803<html> <head> ... -
那些相见恨晚的 JavaScript 技巧
2010-11-26 14:35 724http://51bcw.com/article-html-3 ... -
自定义 方法
2010-11-04 09:42 707function $(o){return document.g ... -
js 将数字转化为汉字
2010-10-26 09:31 6212<html> <head&g ... -
checkbox只读
2010-08-14 16:37 744<input type="checkbox&q ... -
html中select在js中的操作
2010-08-14 00:11 1352//添加 var Select1= document.getE ... -
js table 行数|js table row|js table td|js 操作Table
2010-08-13 23:39 5437兼容FF,IE的table属性操作, 1,得到表格的行数与 ... -
window.showModalDialog返回多个参数的问题
2010-08-11 23:27 1204a.htm: <SCRIPT language=&quo ... -
web可视化编辑器
2010-08-04 11:14 939web可视化编辑器在线编辑器 http://www.edojs ... -
JS阻止事件冒泡
2010-07-29 10:54 1202<!DOCTYPE html PUBLIC " ... -
iframe解决跨域
2010-07-28 17:48 1335.iframe的使用A域中有parent.html,B域中有c ... -
用Script绕行动态注入解决跨域的问题
2010-07-28 17:43 1588<script> /*************** ... -
监听父窗口的变化自适应子页面的高度
2010-07-28 17:16 2824<script> /*************** ... -
JS通用库函数
2010-07-28 15:49 20851.ifLetter 判断字符串是否都是 ...
相关推荐
3. **利用事件监听**:可以将JavaScript代码包装在一个特定的事件处理函数中,例如点击事件,然后通过`innerHTML`添加这个事件触发器。 ```javascript let html = ` <button id="myButton">Click me document....
解决 Ajax 返回 innerHTML 中 ...解决 Ajax 返回 innerHTML 中 JavaScript 不能运行问题的关键是将 JavaScript 代码从 Ajax 返回的数据中提取出来,并将其添加到 `<head>` 中,让浏览器能够正确地解析和执行。
总结来说,动态创建iframe并动态添加js执行代码是Web开发中的重要技术,它能够帮助我们实现异步加载、跨域通信等功能,但同时也需要注意相关的安全问题。通过熟练掌握这些技术,开发者能够构建更复杂、更灵活的Web...
标题中的"innerHtml(转)"可能是指HTML DOM(Document Object Model)中的一个属性`innerHTML`,这是一个非常关键的概念,特别是在JavaScript中用于处理HTML元素的内容。`innerHTML`允许我们获取或设置HTML元素内部...
### JavaScript中的innerHTML与innerText的用法与区别 在前端开发中,经常需要用到JavaScript来操作DOM元素,其中`innerHTML`和`innerText`是非常重要的属性,它们分别用于获取或设置元素内部的HTML内容和纯文本...
在给定的文件`temp.js`中,我们可以预想它可能包含了用于操作HTML元素的JavaScript代码。为了确保这些代码能够正确执行,我们需要考虑脚本是否正确地插入到HTML中,以及是否使用了`async`或`defer`属性。 另一方面...
标题中的“react-Innerself使用innerHTML将ReactRedux转换成50行代码”表明这是一个关于简化React和Redux集成的项目,它使用了一种叫做Innerself的技术。Innerself是一种轻量级的解决方案,通过innerHTML属性来实现...
在JavaScript中,实现一个秒表计时器涉及到定时器(setTimeout和setInterval)以及DOM操作。下面我们将详细探讨这些知识点: 1. **定时器:** - `setInterval` 函数用于每隔一定时间执行一次指定的函数。在这个...
而“h5动态注入js代码”是指在H5页面运行时,通过JavaScript程序动态地向页面中添加或修改JavaScript代码,以实现更灵活的功能扩展和页面交互。这种方式常见于响应式设计、数据可视化、用户行为追踪等多种场景。 一...
这个"一个小的完整的页面计算器"项目是专门为初学者设计的,旨在帮助他们理解如何使用JavaScript来实现基本的数学运算,如加、减、乘、除。 首先,我们需要了解JavaScript的基础知识。JavaScript是一种解释型、弱...
这里还有一个操作提示"Ctrl+A 全选",这通常是在网页中使用快捷键选择所有文本的说明,但在这里可能是指为了测试这段JS代码,需要在网页中选择该段代码并执行(可能需要全选后复制粘贴到浏览器的控制台执行)。...
当你尝试在IE中执行上述代码时,浏览器会报错,但错误信息可能不会明确指出问题出在innerHTML。为了解决这个问题,IE提供了innerText属性作为替代。innerText允许设置或获取元素的纯文本内容,而不是HTML。因此,...
"100个常用js代码"这个主题涵盖了一系列实用的JavaScript代码片段,旨在帮助开发者提升工作效率,解决日常编程中遇到的问题。下面将详细解析这些知识点: 1. **DOM操作**:JavaScript可以操作文档对象模型(DOM),...
要解决这个问题,我们需要手动提取并执行`innerHTML`中的脚本。以下是一种可能的策略: 1. 检测浏览器类型,避免误判IE。可以通过`navigator.userAgent`来识别浏览器。 2. 避免在IE中重复执行带有`defer`属性的脚本...
首先,Monaco Editor支持多种编程语言,包括JavaScript,它还提供了一个缩略地图功能,方便开发者快速定位代码。尽管其体积相对较大,但提供的功能强大且全面。 安装Monaco Editor可以通过npm或yarn进行,命令如下...
本文将围绕标题和描述中提到的“常用的js代码”展开,分享一些实用的JavaScript代码片段和应用。 一、日期选择器 日期选择器在网页表单中非常常见,用于方便用户输入日期。在JavaScript中,我们可以使用内置的`Date...
本文将深入探讨一个特定的问题,即在Internet Explorer 6、7和8(以下简称IE6/7/8)浏览器中使用`innerHTML`属性清空元素时,其子元素也会被一并清空的特性。这个现象在其他现代浏览器中并不常见,因此了解这一问题...
症状:给某个元素的 innerHTML 设置值时,如果提供的 HTML 代码中包含js脚本,很多时候这些脚本无效,或者在某种浏览器上有效,但在其它浏览器上无效。 原因:不同浏览器对插入 innerHTML 中的脚本有不同的处理方法...
在上述的描述中,开发者遇到了一个具体的问题:在调用`innerHTML`后,`onclick`事件不再生效。这个问题通常发生在动态生成或修改HTML内容时,例如在上述例子中,当用户点击按钮改变按钮状态(上线/下线)时,`...
JavaScript源代码的简单实时代码编辑器是一个用于编程教学、演示或快速原型开发的工具,它允许用户在浏览器中即时编辑并查看代码效果。这个压缩包包含了一个基于JavaScript实现的轻量级代码编辑器项目,其核心特点...