2013-01-10 2 views
0

저는 CKEditor4를 사용하여 페이지 콘텐츠를 인라인으로 편집하고 있습니다. 그러나 콘텐츠의 원시 HTML에 Google 애드 센스 코드를 추가하고 인라인 편집기를로드하면 스크립트가 실행되고 새로운 iframe이 내 편집 가능 범위 인 div 내에 배치됩니다. 페이지를 저장하면 iframe과 스크립트가 모두 저장됩니다. 다음 번에 인라인 편집기를 실행하면 다른 편집기가 만들어집니다.CKEditor4가 Google 애드 센스 코드를 무시하도록합니다.

이것은 정말 성가시다. 누군가 CKEditor4가 <script> 태그를 편집기 자체에서 실행하지 못하게하는 방법을 알고 있는지 궁금합니다.

나는 해결책을 찾기 위해 하루 종일 인터넷 검색을하고 있지만 아무 것도 찾을 수 없습니다.

답변

0

구문 분석 및 반환 될 때 모든 종류의 코드를 필터링 할 수 있습니다. 가장 쉬운 방법은 편집기 데이터를 저장할 때 iframe을 제거하는 것입니다. 솔직히 애드 센스에 대한 내용은 아니지만 생성 된 코드는 ins 태그가 단락에 싸여 있음을 알았습니다. 원한다면 결국이 필터를 더 구체적으로 확장 할 수 있습니다.

CKEDITOR.inline('editable', { 
    on: { 
     instanceReady: function() { 
      this.dataProcessor.htmlFilter.addRules({ 
       elements: { 
        p: function(element) { 
         var children = element.children; 
         for (var i = children.length; i--;) { 
          if (children[ i ].name == 'ins') 
           return false; 
         } 
        } 
       } 
      }); 
     } 
    } 
}); 

또한 dataProcessor에 대한 정보는 CKEditor의 강력한 도구입니다. 일단 당신이 그것을 얻으면 당신은 마술을 할 것입니다.

+0

'ins'태그에 대한 언급은 더 단순한 접근 방식을 생각하게했습니다. 내 데이터를 보내기 전에 나는 단지 $ ("ins"). remove();' – PitchBlackCat

관련 문제