>

웹앱의 XML 응답에는 페이지에 추가 할 HTML과 일부 스크립트가 있습니다.

웹앱에서 XML을 다시 보내려고합니다 :

<?xml version="1.0"?>
<doc>
  <html-to-insert>
    <![CDATA[<p>add me to the page</p>]]>
  </html-to-insert>
  <script>
    <![CDATA[ alert('execute me'); ]]>
  </script>
</doc>

내가 지금하고있는 일은  그리고 <html-to-insert>  CDATA, 페이지에 html 삽입 및 <script> 평가 .

접근법에 대한 비판을 찾고 있습니다. 다른 사람의 제안이 있으십니까?

<script>

  • 답변 # 1

    JSON을 보내려면 해석하기가 더 쉽습니다. 예 :

    // Suppose your response is a string:
    // { html: "<p>add me to the page</p>, script:"alert('execute me');" }
    var obj = eval( "(" + response + ")" ) ;
    eval( obj.script ) ;
    
    

  • 답변 # 2

    jQuery라이브러리를 사용하여 백엔드에 XML 요청을하고 구문 분석 할 수 있습니다

    $(document).ready(function()
    {
      $.ajax({
        type: "GET",
        url: "your/url/that/returns/xml",
        dataType: "xml",
        success: function (xml) {
          // xml contains the returned xml from the backend
          $("body").append($(xml).find("html-to-insert").eq(0));
          eval($(xml).find("script").text());
        }
      });
    });
    
    

    여기 및 여기에서 jQuery에 대해 자세히 알아볼 수 있습니다

    테스트하지는 않았지만이 기사에 따라 작동해야합니다.

  • 답변 # 3

    이것이 내가 찾은 최고의 답변입니다. 완벽한 작업 :

    <시간>
    element.innerHTML = xmlhttp.responseText;
    var scriptElements = element.getElementsByTagName('SCRIPT');
    for (i = 0; i < scriptElements.length; i ++) {
        var scriptElement = document.createElement('SCRIPT');
        scriptElement.type = 'text/javascript';
        if (!scriptElements[i].src) {
            scriptElement.innerHTML = scriptElements[i].innerHTML;
        } else {
            scriptElement.src = scriptElements[i].src;
        }
        document.head.appendChild(scriptElement);
    }
    
    
    <시간>

    꿈꾸는 조셉에게 감사합니다. 여기에 원래 답변이 있습니다.

    수정 :

    설명 :

    <올>

    스크립트는 script 내에서만 실행됩니다.  태그

    문서로드 후 추가 된 스크립트는 head 에 추가 된 경우에만 적용됩니다.  태그

    답변을 개선 할 수있는 의견을 주신 데 대해 Deniz Porsuk에게 감사합니다.

  • 답변 # 4

    JSON이 XML imho보다이 목적에 더 적합합니다.

  • 이전 sql - SELECT에서 작동하지 않는 MySQL 저장 프로 시저 (기본 질문)
  • 다음 java - jtable에서 필드의 형식 지정 문제 - 정수와 더블의 차이점