评估一个后加载的脚本

时间:2014-04-01 12:01:03

标签: javascript html eval

我在html中有一个字符串,应该在帖子中加载。

    var str = new String("<span>Hello</span><script>window.alert('hello');</script>");
    document.getElementsByTagName('body')[0].innerHTML=str;

但警报未到来。所以我补充说:

    for(i=0;scr=document.getElementsByTagName('body')[0].getElementsByTagName('script')[i];i++) {
    eval(src.innerHTML);
    };

但即使它不起作用。你可以解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

document.getElementsByTagName('body')[0].innerHTML="<span>Hello</span><script>window.alert('hello');<\/script>";
var alert_func = document.getElementsByTagName('script')[0].innerHTML
if(alert_func.indexOf("alert") != -1) {
  eval(alert_func);
}

此代码首先将<body>代码的innerHTML设置为<span>Hello</span><script>window.alert('hello');</script>。然后,变量alert_func会将内容存储在<script>标记之间。如果alert_func中有“alert”字样,我们会评估<script>代码之间的任何内容并发出提醒。