为什么我这样ie6没反应呢,不是相当于
在head里面加入<script>var a='123';</script>
在body后加入<script>alert('a');</script> 代码:
<script>var c=document.createElement('script');
c.innerHTML="var a='123';";
document.getElementsByTagName("head")[0].appendChild(c);var e=document.createElement('script');
e.innerHTML="alert(a);";
document.getElementsByTagName("body")[0].appendChild(e);
</script>htmljs
在head里面加入<script>var a='123';</script>
在body后加入<script>alert('a');</script> 代码:
<script>var c=document.createElement('script');
c.innerHTML="var a='123';";
document.getElementsByTagName("head")[0].appendChild(c);var e=document.createElement('script');
e.innerHTML="alert(a);";
document.getElementsByTagName("body")[0].appendChild(e);
</script>htmljs
刚才帮你测试了一下,谷歌浏览器没问题。
IE浏览器对于script标签的innerHTML是只读的,不可写,c.innerHTML="var a='123';"; 会出现未知的运行时错误。
* 动态加载js文件,如果文件路径错误将得不到预期目的
* @param {} jss
* 数组,js文件路径集合
* @param {} callback
* 加载完毕后的回调函数
* @param {} scope
* 回调函数执行时的作用域
* @param {} params
* 回调函数执行参数
*/
var loadJs=function(jss, callback, scope, params){
if((jss == null || jss.length <=0) && callback instanceof Function)callback.apply(scope || window, params || []);
var ss = [], sts = document.getElementsByTagName('script'), tmp, url = location.href.replace(/[^\/]+$/,''),
isIE = /msie/.test(navigator.userAgent.toLowerCase()),
getUrl = function(s){
if(isIE) return s;
var i, il;
for(i = 0, il = Math.min(url.length, s.length); i < il; i++)if(url[i] != s[i])break;
s = [s.substring(i)];
il = url.substring(i).split(/\//).length - 1;
for(i = 0; i < il; i++) s.unshift('../');
return s.join('')
},
dom, head = document.getElementsByTagName('head')[0] || document.documentElement, time = '?id=' + new Date().getTime();
for(var i = 0, il = sts.length; i < il; i++)if(tmp = sts.item(i).src)ss.push(getUrl(tmp));
sts = ss.join('\\');
ss = {};
for(var i = 0, il = jss.length, s; i < il; i++){
s = jss[i];
if(!new RegExp('(^|\\\\)' + s + '($|\\\\)','g').test(sts)){
dom = document.createElement('script');
dom.setAttribute('type', 'text/javascript');
dom.setAttribute('src', s + time);
dom.async = 'async';
dom.id = new Date().getTime() + "" + s;
ss[dom.id] = false;
dom.onload = dom.onreadystatechange = function(){
if(!this.readyState || /complete|loaded/.test(this.readyState)){
ss[this.id] = true;
this.onload = this.onreadystatechange = null;
head.removeChild(this);
for(var p in ss)if(ss.hasOwnProperty(p) && !ss[p])return;
if(callback instanceof Function)callback.apply(scope || window, params || []);
ss = sts = tmp = url = getUrl = dom = head = time = null;
}
};
head.appendChild(dom)
}
}
};
<head></head>
<body></body>
<script>
var c = document.createElement('script');
c[document.all ? 'text' : 'innerHTML'] = 'var a="123";';
document.getElementsByTagName('head')[0].appendChild(c);
var e = document.createElement('script');
e[document.all ? 'text' : 'innerHTML'] = 'alert(a)';
document.getElementsByTagName('body')[0].appendChild(e);
</script>