代码之家  ›  专栏  ›  技术社区  ›  Gary Green

Ajax:将代码注入internetexplorer

  •  1
  • Gary Green  · 技术社区  · 16 年前

    var ajax = new ActiveXObject('Microsoft.XMLHTTP');
    ajax.open('GET','http://fromsitewebsite.com/javascript.js',true);
    ajax.setRequestHeader('Connection','close');
    ajax.onreadystatechange = function()
     {
       if ( ajax.readyState == 4 )
       {
        document.body.innerHTML += '<script type="text/javascript">'+ajax.responseText+'</script>';
       }
     };
    
    ajax.send('');
    

    我尝试过这样做,但仍然没有运气;

      document.body.innerHTML += '<script type="text/javascript">('+ajax.responseText+')()</script>')
    

    干杯

    6 回复  |  直到 16 年前
        1
  •  2
  •   scunliffe    16 年前

    get IE to handle the content of the script tag properly .文本 价值

    var scrElem = document.createElement('script');
    scrElem.type = 'text/javascript';
    scrElem.text = ajax.responseText;
    document.body.appendChild(scrElem);
    
        2
  •  1
  •   Jacco    16 年前

    你为什么不试试:

    var scriptElmnt  = document.createElement('SCRIPT');
    scriptElmnt.type = 'text/javascript';
    scriptElmnt.src  = '/javascript.js';
    document.body.appendChild(scriptElmnt);
    

        3
  •  0
  •   lutz lutz    16 年前

    尝试 eval 返回的代码。

        4
  •  0
  •   Pointy    16 年前

    当你说它“什么都不做”时,你检查过脚本错误吗?

        5
  •  0
  •   Aquatic    16 年前

    if ( ajax.readyState == 4 )  
    {  
        if (window.execScript)  
            window.execScript(ajax.responseText);  
        else  
            document.body.innerHTML += '<script type="text/javascript">'+ajax.responseText+'</  script>';  
    }
    

    上面推荐的eval在IE中有一些特定的特性

        6
  •  0
  •   fredrik    16 年前

    有几件事。

    首先,eval()是邪恶的。如果在一个繁重的javascript驱动的应用程序中使用它,它将显著降低速度。

    …弗雷德里克