`
mutongwu
  • 浏览: 448417 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

执行innerHTML时候,代码片段的js

阅读更多
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<title>大屏幕</title>
	<script type="text/javascript" src="jquery.js" ></script>
  	<style type="text/css">
  	</style>
</head>
<body>
	<div id="cnt"></div>
	<input id="btn"  value="加载" type="button"/>
	
	<script>
		var excScript = (function(){
			var timer = 0,
				repeat = 0,
				head = document.getElementsByTagName("head")[0],
				queue = [];
			function createTmpScript(scriptEl,idx){
				var xmlhttp = new XMLHttpRequest();
				xmlhttp.onreadystatechange = function(){
					if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
						console.log("idx:" + idx)
						queue[idx].text = xmlhttp.responseText;
						queue[idx].load = true;
					}
				};
				xmlhttp.open("GET",scriptEl.src,true);
				xmlhttp.send(null);
			}
			
			function doExc(item){
				console.log("doExc")
				var script = document.createElement('script');  
				script.type = 'text/javascript';  
				var code = item.text;  
				//console.log("code:" + code)
				try{  
				    script.appendChild(document.createTextNode(code));  
				}catch(ex){  
				    script.text = code;//this works in all browers.  
				}  
				//console.log(code)
				item.el.parentNode.replaceChild(script,item.el);  
			}
			
			function excQueue(){
				console.log('queue.length:' + queue.length);
				if(queue.length){
					console.log('queue[0]')
					if(queue[0].load){
						doExc(queue.shift());
						arguments.callee();
					}else{
						repeat++;
						if(repeat < 10){
							console.log("repeat:" + repeat);
							setTimeout(arguments.callee,300);	
						}
						
					}
				}
			}
			
			function initQueue(scripts){
				var script = null,
					i = 0, len = scripts.length;
				for(i=0; i < len; i++){
					script = scripts[i];
					if(!script.type || script.type == "text/javascript"){
						if(script.src){
							createTmpScript(script,i);
							queue.push({
								"el": script,
								"text" : null,
								"load": false
							});
						}else{
							queue.push({
								"el": script,
								"load": true,
								"text" : script.text || script.textContent || script.innerHTML
							});
						}
					}
				}
			}
			return function(scripts){
				initQueue(scripts);	
				console.log(queue)
				excQueue();			
			};
		})();
		jQuery("#btn").click(function(){
			
			jQuery.get("www.html?_=" + Math.random(),function(response){
				jQuery("#cnt").html(response);
			});
			return;
			var fragment = document.createDocumentFragment();  
			var div = document.createElement("div");
			var _html = '';
			var xmlhttp = new XMLHttpRequest();
			xmlhttp.onreadystatechange = function(){
				if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
					document.getElementById("cnt").innerHTML = xmlhttp.responseText;
					
					var scripts = document.getElementById("cnt").getElementsByTagName("script");
					/*
					jQuery.each(scripts,function(i,item){
						var el = document.createElement("script");
						if(item.src){
							el.src = item.src;
							item.parentNode.replaceChild(el, item);
						}
						 
					});
					*/
					excScript(scripts);
				}
			};
			xmlhttp.open("GET","www.html",true);
			xmlhttp.send(null);
			
		});
		
	</script>
</body>
</html>
分享到:
评论

相关推荐

    innerHtml(转)

    标题中的"innerHtml(转)"可能是指HTML DOM(Document Object Model)中的一个属性`innerHTML`,这是一个非常关键的概念,特别是在JavaScript中用于处理HTML元素的内容。`innerHTML`允许我们获取或设置HTML元素内部...

    100个可以直接拿来用的javaScript代码

    7. **事件与DOM操作**:JavaScript常用于改变HTML元素的样式、内容或位置,代码片段可能包含事件监听、DOM元素的选择和操作,如getElementById、querySelector、innerHTML等。 8. **AJAX与Fetch API**:用于异步...

    100个常用js代码

    "100个常用js代码"这个主题涵盖了一系列实用的JavaScript代码片段,旨在帮助开发者提升工作效率,解决日常编程中遇到的问题。下面将详细解析这些知识点: 1. **DOM操作**:JavaScript可以操作文档对象模型(DOM),...

    经典漂浮广告JS 代码 经过测试直接可用~~~

    在提供的`main.js`文件中,我们可以预见到以下核心代码片段: ```javascript // 获取广告元素 var adElement = document.getElementById('floatingAd'); // 设置初始位置 adElement.style.position = 'fixed'; ...

    站长常用200个js代码

    "站长常用200个js代码"集合了诸多实用的JavaScript代码片段,这些代码对于网站管理员(站长)来说尤其有用,能够帮助他们更高效地构建和维护网站。 1. **页面交互**:JS可以实现丰富的页面交互效果,如按钮点击响应...

    Javascript中innerHTML用法实例分析

    由于 `innerHTML` 可以接收任意 HTML 代码,如果执行的字符串包含了恶意的代码片段,那么它也会被当做有效的 HTML 代码执行,这就有可能导致跨站脚本攻击(XSS)。因此,在使用 `innerHTML` 插入数据时,必须对数据...

    javascript简单代码全集

    该文件提供了一系列JavaScript代码片段,适用于初学者学习使用。其中包括了对话框操作、窗口控制、XML处理以及各种验证功能等。 #### 主要知识点 ##### 对话框操作 在JavaScript中,可以通过`window....

    JS代码块整理.zip

    "JS代码块整理.zip"文件集合了常用的JavaScript代码片段,方便开发者在编写代码时快速引用和学习。 1. 函数与变量: - `function` 关键字用于定义函数,如 `function greet(name) { console.log('Hello, ' + name)...

    在javascript中执行任意html代码的方法示例解读

    -- --&gt;来包裹JavaScript代码片段,能够避免eval函数中HTML代码直接被解释器误认为结束标签的问题。示例中提到的eval('&lt;li&gt;hehe&lt;/li&gt;')未能执行是因为字符串中的标签在JavaScript的执行环境中没有被正确解析。而将...

    272个超酷经典推荐JavaScript代码

    这个资源包包含272个超酷经典的JavaScript代码片段,它们可以帮助开发者实现各种功能和特效,提升用户体验,使得网站更加生动有趣。 1. **基础语法与数据类型**:JavaScript的基础包括变量声明(var, let, const)...

    隐藏网页的代码

    通过提供的HTML代码片段,我们可以看到一种简单的技术来实现这个目的: ```html 彻底隐藏你 HTML 网页的源代码 function clear() { Source = document.body.firstChild.data; document.open(); document....

    HandySnippets:方便的代码片段

    HandySnippets是一款实用的代码片段集合,专为开发者提供便捷的JavaScript代码引用。这个工具旨在提高开发效率,让你能够快速地找到并插入常见的、经过验证的代码片段,避免重复编写相同或相似的代码。 在...

    javascript实例代码

    在本“javascript实例代码”压缩包中,包含了一系列可以直接使用的JavaScript代码片段,帮助开发者快速实现各种功能。下面我们将深入探讨这些知识点。 1. **DOM操作**: - JavaScript可以通过Document Object ...

    230个常用JavaScript代码[

    这个名为"230个常用JavaScript代码"的压缩包集合了多种实用的JavaScript代码片段,非常适合初学者进行学习和实践。下面将详细介绍其中可能包含的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量声明...

    经常用到的javaScript技术代码

    这个“经常用到的JavaScript技术代码”压缩包中包含的可能是一些常用的JavaScript代码片段、函数或者技巧,旨在帮助开发者提高工作效率。 1. **变量与数据类型** JavaScript支持动态数据类型,可以使用`var`、`let...

    网页javascript精华代码集

    在"网页javascript精华代码集"中,我们很可能会找到一系列高效、实用的代码片段,这些代码可以帮助开发者节省时间,提高生产力,同时也为优化网页性能提供可能。 1. DOM操作:JavaScript提供了对HTML文档对象模型...

    超级实用且不花哨的js代码大全

    在“超级实用且不花哨的js代码大全”中,我们很可能会找到各种实用的JS代码片段,这些代码适用于解决实际开发中的常见问题,提升用户体验。 1. **基础语法**:JS的基础语法包括变量声明(var, let, const)、数据...

    隐藏你HTML网页的源代码

    在提供的代码片段中,我们可以看到以下关键部分: 1. `&lt;script&gt;`标签:这是一个内联JavaScript脚本,其中定义了一个名为`clear`的函数。这个函数将执行一系列操作以尝试隐藏HTML源代码。 2. `function clear()`:这...

    常用JavaScript代码

    在这个“常用JavaScript代码”压缩包中,我们很可能会找到一系列在实际开发中频繁使用的代码片段。 1. **变量声明与数据类型**: JavaScript是弱类型语言,允许在运行时动态地声明和改变数据类型。`var`, `let`, ...

    浮动对联广告代码

    在`ad_float.js`文件中,可能有类似以下的代码片段: ```javascript var adElement = document.getElementById('floatingAd'); adElement.style.position = 'fixed'; adElement.style.left = '20px'; // 左侧距离 ...

Global site tag (gtag.js) - Google Analytics