为什么我这样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

解决方案 »

  1.   

    这个需求真稀奇。
    刚才帮你测试了一下,谷歌浏览器没问题。
    IE浏览器对于script标签的innerHTML是只读的,不可写,c.innerHTML="var a='123';"; 会出现未知的运行时错误。
      

  2.   

    document.write("<script>xxxxxxxxx</script>);
      

  3.   

    那你试试  src属性怎么样 ,就是 给script加一个 src属性 ,只不过 是   src引入一个js脚本文件
      

  4.   

    给你个js动态加载的函数:/**
     * 动态加载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)
    }
            }
    };
      

  5.   

    你的函数都走到body了,还会回去执行head内的么?
      

  6.   

    ie设置script的text属性
    <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>