2010-08-06 4 views
0

보고서를 만들 때 보고서 매개 변수와 보고서 자체의 인터페이스가 모두 동일한 PHP 파일에 의해 작성되었습니다.Ajax.Request가 JS 코드를 평가하지 않는 것 같습니다.

new Ajax.Updater('reportarea','reportengines/<?=$configdata['filename']?>', 
        { 
         method: 'post', 
         parameters: { 
          action: 'executereport', 
          rep_projects: $('rep_projects').value, 
          rep_daterange: $('rep_daterange').value, 
          rep_daterangefws: $('rep_daterangefws').value, 
          rep_daterangemos: $('rep_daterangemos').value, 
          start_date: startdate, 
          end_date: enddate 
         } 
        } 
       ) 

모든 것이 완벽하게 작동

내가 보고서를 끌어이 코드를 사용할 때마다
<script type="text/javascript">alert("bla");</script> 

과 : 보고서가 생성 될 때

이라는 파일의 부분의 첫 번째 라인이다 내 JS 코드는 모두 페이지가 열리 자마자 평가됩니다. 경고는 "bla"로 표시되지만, 이것을 사용하면 다음과 같이 표시됩니다.

JS 활동이 조금이라도 표시되지 않습니다. 나는 잘못된 방식으로 Ajax.Request를 사용하고 있을지 모르지만 어느 것을 이해할 수 없는지 ...

누구에게 익숙합니까? 프로토 타입 문서에 따르면

답변

0

"아약스 요청이 동일 근원 정책을 다음과 응답의 자바 스크립트 관련 내용 유형이있는 경우 responseText 속성의 내용이 자동으로 평가 후면에 전달 될 것"

이 경우 두 가지 옵션이 있습니다.

다음 중 하나와 반대편에

설정의 Content-Type :

  • 응용 프로그램/ECMAScript를
  • 응용 프로그램/자바 스크립트
  • 응용 프로그램/X-ECMAScript를
  • 응용 프로그램/X-자바 스크립트
  • 텍스트/ecmascript
  • 텍스트/javascript
  • 텍스트/X-ECMAScript를
  • 텍스트/X-자바 스크립트

또는 강제 JS 평가 :

new Ajax.Request('reportengines/<?=$configdata['filename']?>', { 
     method: 'post', 
     evalJS: 'force', 
     parameters: { 
      action: 'executereport', 
      rep_projects: $('rep_projects').value, 
      rep_daterange: $('rep_daterange').value, 
      rep_daterangefws: $('rep_daterangefws').value, 
      rep_daterangemos: $('rep_daterangemos').value, 
      start_date: startdate, 
      end_date: enddate 
     }, 
     onSuccess: function(transport) { 
      $('reportarea').innerHTML = transport.responseText; 
      Effect.BlindUp('reportoptions', { duration: 1.0 }); 
     } 
    }); 

공지 사항 : 추가 옵션이 evalJS: 'force'

+0

이러한 옵션을 모두 필요로 첨가 하였다 JS에 대한 별도의 요청은 그렇지 않습니까? 내 코드가 Ajax.Updater에서는 좋지만 Ajax.Request에서는 그렇지 않은 이유는 무엇입니까? – Ferfish

+0

JS를 평가하는 데 추가 요청이 필요하지 않습니다. –

+0

Ooops, 제 잘못, evalJS 옵션 세트를 보지 못했습니다 ... 완벽하게 작동했습니다. 나는 아직도 내 JS 코드를 자동 평가하지 않는 이유를 모른다. 어쨌든! 고맙습니다! – Ferfish

관련 문제