代码之家  ›  专栏  ›  技术社区  ›  Aaron

有没有办法从html内容中提取有效的脚本并使用jQuery执行它?

  •  0
  • Aaron  · 技术社区  · 14 年前

    <p id="script">$("p").css("color", "red");</p>
    

    有没有办法选择标记中包含的脚本并使用jQuery执行它?在本例中,脚本

    $("p").css("color", "red");
    

    2 回复  |  直到 14 年前
        1
  •  4
  •   Cristian Sanchez    14 年前
    eval($("#script").text())
    

    因为它使用 text()

    例如,如果您使用StackOverflow代码高亮显示并希望选择代码,text()将返回您期望的结果:

    eval($(“#script”).text())
    

    鉴于 html() 可能会回来

    <span class="kwd">eval</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="str">"p #script"</span><span class="pun">).</span><span class="pln">text</span><span class="pun">())</span><span class="pln"><br></span>
    

    显然无法评估。

    如果你不打算做任何代码高亮显示,那么这是一个没有问题。

        2
  •  1
  •   Nick Craver    14 年前

    你可以打电话 eval() 但我会重新评估你的方法,比如:

    eval($("#script").html());
    

    You can test it out here . 这只是说明而已 可以 这是可以做到的,但是您应该尽可能避免这种情况,至少它有安全性和性能问题。