2014-09-12 2 views
0

저는 서버 측에서 ASP.NET과 클라이언트 측에서 Javascript/jQuery로 구동되는 웹 응용 프로그램을 가지고 있습니다. ASP.NET WebMethod에 Ajax 호출을하고 반환 된 JavaScript 코드를 실행하는 것이 가능한지 알고 싶습니다. 예 (매우 간단한 예)를 들면 다음과 같습니다ajax 호출에서 동적 자바 스크립트 실행하기

내 HTML : 내 C#에서

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

: 내 자바 스크립트에서

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

는 :

$(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()에서 반환됩니다. 어떤 아이디어가 이것을 어떻게?

답변

0

eval()을 사용하는 것이 하나의 옵션이지만 모든 사람이 eval은 악하다고 말하므로 사용하지 마십시오. 평가 후면을 재창조 같은 외모의

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

var F=new function (theCode); 

return(F()); 

정렬,하지만 지금의로 그것을 할 방법은 다음과 같습니다

나는 일반적으로 그렇게 같은 동적 기능을 사용하여이 작업을 수행.

+0

호기심에서 벗어나서, 왜'eval'은 악마입니까? 보안상의 위험입니까? – Icemanind

+0

실행중인 코드를 절대'eval'로 확인할 수는 없으며,이 코드는 앱에서 절대 실행하지 않는 악성 코드이거나 위험한 코드 일 수 있습니다. – nilobarp

관련 문제