使用innerHTML插入的活动javascript

时间:2012-09-27 12:14:04

标签: javascript ajax

我正在尝试使Ajax页面更有用一些包含java脚本的内容可以以某种方式激活java脚本,因为到目前为止我没有找到任何可能帮助我的东西:

 <script>
   var d=document.getElementById("foo");
   d.innerHTML="<script type='text/javascript'>alert('yey');</script>";
 </script>

我希望这能提醒我''yey',但它天生没有任何idias? 请不要查询。

2 个答案:

答案 0 :(得分:0)

你正在尝试的东西不起作用,因为在加载页面时在机器上解释了javascript,因此,当你插入代码时,页面的整个脚本已经被浏览器的javascript引擎和代码解析了您在页面上插入的内容被引擎视为纯文本。

在页面刷新之前,代码不会再次发送到引擎,但是当它执行此操作时,您插入的javascript将会消失,因为页面加载时它不存在。

您需要做的是在您的内容上使用某种类型的模板/包含系统。

答案 1 :(得分:0)

我明白了!

var d=document.getElementById("foo");
 d.innerHTML="<script type='text/javascript'>alert('yey');</script>";

startScrypt(d);

function startScrypt(obj) {.
 if (!obj) return;
 var children=obj.childNodes;  
 for (var i in children) 
   if (children[i]){
                       if (children[i].tagName=="SCRIPT") { 
                          if (!children[i].src || children[i].src=="") 
                               window.setTimeout(children[i].innerHTML,0); 
                               else {load_scrit_src(children[i].src);}
                        }   else startScrypt(children[i]);
                   }
} 
那很好......谢谢大家。