javascript
2013-03-28 60 views 0 likes 
0

如何将javascript加载到innerhtml中并执行脚本,我的脚本没有警告hello world,而是从openx嵌入的代码。在innerHTML中加载javascript

代码1.这是我的原代码,该代码会显示一个横幅:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <div id="banner"> 
      <script type='text/javascript'> 
       <!--//<![CDATA[ 
       var m3_u = (location.protocol=='https:'?'https://203.130.226.231/advediax/www/delivery/ajs.php':'http://203.130.226.231/advediax/www/delivery/ajs.php'); 
       var m3_r = Math.floor(Math.random()*99999999999); 
       if (!document.MAX_used) document.MAX_used = ','; 
       document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u); 
       document.write ("?zoneid=1"); 
       document.write ('&amp;cb=' + m3_r); 
       if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used); 
       document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : '')); 
       document.write ("&amp;loc=" + escape(window.location)); 
       if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer)); 
       if (document.context) document.write ("&context=" + escape(document.context)); 
       if (document.mmm_fo) document.write ("&amp;mmm_fo=1"); 
       document.write ("'><\/scr"+"ipt>"); 
       //]]>--> 
      </script> 
     </div> 
    </body> 
</html> 

CODE 2。这是我的变换代码。但不工作,我要工作显示标题为代码在上面:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <script> 
      function getstring(){ 
       var mystring = '<!--//<![CDATA \nvar m3_u = (location.protocol=="https:"?"https://203.130.226.231/advediax/www/delivery/ajs.php":"http://203.130.226.231/advediax/www/delivery/ajs.php");'+ 
        'var m3_r = Math.floor(Math.random()*99999999999);'+ 
        'if (!document.MAX_used) document.MAX_used = ",";'+ 
        'document.write ("<scr"+"ipt type=\'text/javascript\' src=\'"+m3_u);'+ 
        'document.write ("?zoneid=1");'+ 
        'document.write (\'&amp;cb=\' + m3_r);'+ 
        'if (document.MAX_used != \',\') document.write ("&amp;exclude=" + document.MAX_used);'+ 
        'document.write (document.charset ? \'&amp;charset=\'+document.charset : (document.characterSet ? \'&amp;charset=\'+document.characterSet : \'\'));'+ 
        'document.write ("&amp;loc=" + escape(window.location));'+ 
        'if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));'+ 
        'if (document.context) document.write ("&context=" + escape(document.context));'+ 
        'if (document.mmm_fo) document.write ("&amp;mmm_fo=1");'+ 
        'document.write ("\'><\/scr"+"ipt>");'+ 
        '//]]>-->'; 
       return mystring; 
      } 

      var div = document.createElement("div"); 
      div.id="banner"; 
      div.innerHTML = getstring(); 
      div.style.cssText = "padding: 10px; border:1px solid; background-color: #000; color: #fff;"; 
      document.getElementsByTagName("body")[0].appendChild(div); 
      document.getElementsByTagName("body")[0].insertBefore(
      document.getElementById("banner"), 
      document.getElementsByTagName("body")[0].firstChild); 

      var scripts = getstring(); 
      for (var i = 0; i < scripts[i].length; i++) { 
       eval(scripts[i].text); 
      } 

     </script> 
    </body> 
</html> 

我想CODE 2运行相同代码1. 感谢。

+0

这就是为什么你不应该重复发帖!还有,存在document.body – MaxArt 2013-03-28 08:41:45

回答

0

把你的getString()用eval()

div.innerHTML =的eval(GetString的());

它适用于我当我测试你的代码2的例子。

编辑:下面瑟我的第一个评论这个答案

+0

你的浏览器是什么?我不能运行它,我得到的消息undefined在布局 – 2013-03-28 08:49:48

+0

我不得不重新考虑,因为我的回答很快。我得到了要呈现的横幅,但不是您的'横幅'分区。它呈现在下面,我也得到未定义的字符串在div中。您在mysting变量中的脚本是否是静态的并从某处收到? – RoggA 2013-03-28 10:11:32

相关问题