从ajax调用执行动态javascript

时间:2014-09-12 23:19:13

标签: javascript jquery asp.net ajax

我有一个Web服务器,它由服务器端的ASP.NET和客户端的Javascript / jQuery提供支持。我想知道是否可以对ASP.NET WebMethod进行Ajax调用并执行返回的javascript代码。例如(非常简化的例子):

我的HTML:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <div id="divMessage"></div>
    </body>
</html>

在我的C#中:

[WebMethod]
public static string GetScriptCode()
{
    return "$('#divMessage').html('This is a test');";
}

在我的javascript中:

$(function() {
    var handler = function(msg) {
        var myScriptCode = msg.d;
        // I'd like $('#divMessage') to contain my message
    };

    $.ajax({
        type: "POST",
        url: "Test.aspx/GetScriptCode",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: handler
    });
});

我喜欢从GetScriptCode()返回的javascript来执行。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

使用eval()是一种选择,但正如每个人都说eval是邪恶的,不要使用它。

我通常使用动态函数来执行此操作:

var theCode = "$('#divMessage').html('This is a test');";

var F=new function (theCode);

return(F());

看起来像是重新发明了eval,但这就是我现在如何做到的。