2

ページの詳細を変更するときに、CKEditor の filebrowserUploadUrl を変更できるようにする必要があります。通過するクエリ文字列は、配置したカスタム アップロード プロセスで使用されるためです。

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 は正しく設定されますが、送信値には影響しません。設定値がキャッシュされているようです。

その場で構成値を変更する方法はありますか?

4

2 に答える 2

1

現在、ハッキングせずにその場でこの URL を変更する可能性はありません。

http://dev.ckeditor.com/browser/CKEditor/trunk/_source/plugins/filebrowser/plugin.js#L306をご覧ください。

このelement.filebrowser.urlプロパティは一度設定され、上の数行が再利用されます。どういうわけかこの要素を見つけてこのプロパティをリセットしようとすることができますが、このプラグインのコードをより深く理解していないため、方法がわかりません。

2 番目のオプションは、この行 #L284 を次のように変更することです。 url = undefined;

ただし、これが正しい解決策であるかどうかは確認していません:)頑張ってください!

ところで。http://dev.ckeditor.comでお気軽に問題を記入してください。

于 2012-06-18T20:28:52.537 に答える
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 を呼び出します。理想的ではありませんが、私の目的には適しています:)

于 2012-06-19T06:25:39.783 に答える