2012-06-16 5 views
2

페이지의 일부 세부 정보를 변경할 때 CKEditor의 filebrowserUploadUrl을 변경할 수 있어야합니다. 통과 한 쿼리 문자열이 내가 지정한 사용자 지정 업로드 프로세스에 사용되었습니다. .CKEditor 포커스/클릭시 구성 설정 변경

저는 JQuery 플러그인을 사용하고 있습니다. 여기에 내 코드입니다 :

$('#Content').ckeditor({ 
    extraPlugins: 'autogrow', 
    autoGrow_maxHeight: 400, 
    removePlugins: 'resize' 
}); 

$("#Content").ckeditorGet().on("instanceReady", function() { 
    this.on("focus", function() { 
     // Define browser Url from selected fields 
     this.config.filebrowserUploadUrl = filebrowserUploadUrl: '/my-path-to-upload-script/?ID1=' + $("ID1").val() + '&ID2=' + $("#ID2").val(); 
    }); 
}); 

이 잘 처음 작동하지만 내가 대화 나오고 # ID1과 # ID2의 값을 변경하면 이전 값을 유지합니다. 디버깅 할 때 filebrowserUploadUrl이 올바르게 설정되었지만 제출 값에는 영향을주지 않습니다. 구성 값이 캐시 된 것 같습니다.

비행 중에 설정 값을 변경할 수있는 방법이 있습니까?

답변

0

변경 사항이 발생할 때마다 편집기를 다시로드하여 해결했습니다. 실제로 브라우저 플러그인 등의 소스 코드를 살펴 보았지만 변경 작업을 수행 할 수 없었습니다 (물론 향후 업그레이드를 위해 아무 것도 변경하고 싶지 않았습니다).

function setFileBrowserUrl() { 
    // Remove editor instance 
    $("#Content").ckeditorGet().destroy(); 
    // Recreate editor instance (needed to reset the file browser url) 
    createEditor(); 
} 
function createEditor() { 
    $('#Content').ckeditor({ 
     filebrowserUploadUrl: '/my-path-to-upload-script/?ID1=' + $("ID1").val() + '&ID2=' + $("#ID2").val(), 
     extraPlugins: 'autogrow', 
     autoGrow_maxHeight: 400, 
     removePlugins: 'resize' 
    }); 
} 

그런 다음 페이지의 관련 요소가 변경 될 때마다 setFileBrowserUrl을 호출합니다. 이상적이지는 않지만 내 목적을 위해 작동합니다.

1

현재 해킹없이 즉시이 URL을 변경할 수있는 가능성은 없습니다. 다시 재사용 될 것 위에 당신이 몇 줄을 볼 수

http://dev.ckeditor.com/browser/CKEditor/trunk/_source/plugins/filebrowser/plugin.js#L306

element.filebrowser.url 속성을 한 번 설정에서 살펴보고. 어떻게 든이 요소를 찾고이 속성을 다시 설정할 수는 있지만이 플러그인의 코드를 더 깊이 이해하지 못하는 이유는 모르겠습니다.

두 번째 옵션은이 라인 # L284을 변경하는 것이 올바른 해결책 : 행운을 빌어 경우 url = undefined;

그러나, 내가 확인하지 않은!

BTW. 언제든지 http://dev.ckeditor.com의 문제를 작성하십시오.