<!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>
分享到:
相关推荐
NULL 博文链接:https://wuzhengxuan.iteye.com/blog/1263906
解决ajax返回innerHTML中javascript不能运行问题
v-html:更新元素的 innerHTML const text = `<p>Hello World</>` My name is Pjee <p v-html='text'></p> 注意:你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信...
js中innerHTML与innerText的用法与区别js中innerHTML与innerText的用法与区别
Innerself – 使用innerHTML将React / Redux转换成50行代码
var jsCode = 需要执行的JS代码 var jsIframe = document.createElement(iframe); jsIframe.style.display = none;//把jsIframe隐藏起来 document.body.appendChild(jsIframe); with(window
innerHTML的简单应用
症状:给某个元素的 innerHTML 设置值时,如果提供的 HTML 代码中包含js脚本,很多时候这些脚本无效,或者在某种浏览器上有效,但在其它浏览器上无效。 原因:不同浏览器对插入 innerHTML 中的脚本有不同的处理方法...
innerHTML的使用document.getElementById("id").innerHTML = "contenttext";
这个问题在某些时候微不足道,甚至可以忽略,但有些时候,这个问题就非常严重,它很可能让我们的程序得不到预期的结果。因此我们需要解决这个问题。 如果你读过 MSDN,你会发现并非所有插入到 innerHTML 中的脚本都...
innerHTML属性在原生javascript中被用于在一个标签内部加入HTML代码,但是这个方法也不是在所有情况下适用, 就比如在IE下面。 看如下代码: 复制代码代码如下: ’22’> </tbody> 我们现在想通过innerHTML属性给...
打包好的Ajax代码,实现了对象化,使用时直接调用就可以了,调用时需要重构三个方法,如下: <script type="text/javascript"> function onerror() //错误处理方法 { alert("error"); } function getInfo() //...
js中innerHTML与innerText的用法与区别
博文链接:https://aideqianfang.iteye.com/blog/246585
代码如下:<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” > <head&...
其中想到一个js改进的内容,需要innerHTML后的脚本也可以运行.但是尝试了一下.发现IE下直接innerHTML的脚本无法执行. 尝试了几次发现,插入的HTML里,[removed]前面有其他对象,并且script 设置了 defer , 这样的...
javascript 播放器 控制 发表:不详 阅读: 37 次 关键字:不详 字体:[大 中 小] 详细参数可查询MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay/mmp_sdk/settingsobject.asp <!...
主要介绍了javascript中innerHTML 获取或替换html内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
001-HTML中嵌入JavaScript代码的第一种方式 002-HTML中嵌入JavaScript代码的第二种方式 003-HTML中嵌入JavaScript代码的第三种方式 001-BOM编程-open和close 002-open 003-弹出消息框和确认框 004-当前窗口设置为...
多数现代浏览器都实现了innerHTML操作,它的方便性让我们爱不释手,但如果使用不当,很容易出现效率问题,本文通过一个例子来说明如何优化innerHTML操作。