![](/img/trans.png)
[英]CKEDITOR : How do you get an instance of the Editor in typescript with CKEDITOR4
[英]How do I pass custom values to CKFinder3 when instantiating a CKEditor4 instance?
使用CKEditor4時,使用pass
將變量pass
到CKFinder3(ASP)連接器時遇到一些麻煩。
我使用以下命令創建編輯器實例:
CKFinder.setupCKEditor( myEditor, {
pass: 'testVar',
testVar: 'nooice',
...
});
但是該變量似乎並沒有將其傳遞給CKFinder。
如果我直接將此代碼添加到CKFinder配置中,則可以正常運行:
config.pass = 'testVar';
config.testVar = 'nooice';
很好,但是我要傳遞的值是動態的,因此當我在頁面上調用.setupCKEditor()
時,需要傳遞它們。 我也嘗試過使用connectorInfo: 'testVar=nooice'
,但這也不起作用。
有人碰到這個嗎? 我在此問題上找到了一個很好的答案和示例, 如何在ckeditor中為圖片(ckfinder)按鈕傳遞查詢字符串參數? ,但是所描述的解決方案基本上是我正在做的事情,對我沒有影響。
我已經能夠在使用CKEditor5測試得到這個工作:
ClassicEditor.create( document.querySelector( '#bodyContent' ), {
ckfinder: {
uploadUrl: '/ckfinder3/connector?command=QuickUpload&type=Images&responseType=json',
options: {
pass: 'testVar',
testVar: 'nooice'
}
},
...
} );
但是我無法在CKEditor4中弄清楚。
您像這樣通過它們:
var editor = CKEDITOR.replace( 'editor1', {
language : 'en',
} );
CKFinder.setupCKEditor( editor, {
test : 'testvalA',
token : '7901a26e4bc422aef54eb45A',
pass : 'token,test'
});
在上面的示例中,您正在傳遞test
和token
參數。
如果使用手動集成方法,則需要將參數附加到filebrowserXYZBrowseUrl
配置設置,如下所示:
var editor = CKEDITOR.replace( 'editor1', {
filebrowserBrowseUrl: '../ckfinder/ckfinder.html?id=abc&foo=bar&test=custom',
filebrowserImageBrowseUrl: '/ckfinder/ckfinder.html?type=Images&id=abc&foo=bar&test=custom',
filebrowserUploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&id=abc&custom=test',
filebrowserImageUploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images&id=abc&custom=test',
} );
現在的問題是CKFinder將僅傳遞預定義的集合或URL參數: id
, type
, resourceType
, langCode
, CKEditor
和CKEditorFuncNum
。 如果您想使用更多參數,則需要將其作為CKFinder配置設置手動傳遞,並且需要在ckfinder/ckfinder.html
文件中進行設置(您需要對其進行修改),例如
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>CKFinder 3 - File Browser</title>
</head>
<body>
<script src="ckfinder.js"></script>
<script>
function getUrlParams() {
var vars = {};
window.location.href.replace( /[?&]+([^=&]+)=([^&]*)/gi, function( match, key, value ) {
vars[ key ] = value;
} );
return vars;
}
var params = getUrlParams(),
config = { pass : '' },
ckfServicedParams = [ 'id', 'type', 'resourceType', 'langCode', 'CKEditor', 'CKEditorFuncNum' ];
for( var key in params ){
if ( ckfServicedParams.indexOf( key ) < 0 ) {
config.pass = config.pass.concat( config.pass ? ','+key : key);
config[key] = params[key];
}
}
CKFinder.start( config );
</script>
</body>
</html>
筆記:
filebrowserXYZUploadUrl
配置設置中(您可以使用上面示例中所示的其他參數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.