我在我的一个网站上使用ckfinder 3.0,在独立模式下 我上传了几张图片和PDF文件。
当我双击图像时,它们会以popin视图显示。 当我双击PDF文件时,在popin视图中显示PDF图标,但是我必须右键单击PDF图标,然后在上下文菜单中选择“下载”以下载我的PDF文件并打开它。或者,我想要这种文件(可以直接在我的浏览器上阅读),在浏览器的新标签中打开它们,而不是在popin中显示PDF图标!
我试图开发一个插件,但是当我在CKFinder中双击我的PDF文件时,我不知道在哪里可以禁用'popin显示'。
CKFinder.define( [ 'jquery' ], function( jQuery ) {
'use strict';
return {
init: function( finder ) {
finder.on( 'file:dblclick', function( evt ) {
finder.request( 'files:getSelected' ).forEach( function( file ) {
finder.request( 'file:getUrl', { file: file } )
.then( function( fileUrl ) {
console.log( 'The file: ' + file.get( 'name' ) + ' has url: ' + fileUrl );
if(fileUrl.match(/.pdf/gi))
{
window.open(fileUrl);
}
} );
} );
} );
}
};
});
有人知道如何在CKFinder中禁用此功能吗?
感谢您的帮助!
答案 0 :(得分:2)
您可以通过取消活动来停用文件预览(图库):
finder.on( 'file:dblclick', function( evt ) {
var file = evt.data.file;
if ( file.getExtension().toLowerCase() === 'pdf' ) {
// Cancel the event so the default handler won't be called
evt.cancel();
// Do whatever you want with file
alert( file.getUrl() );
}
}, null, null, 5 );
在upcoming 3.1 version中会有PDF文件预览。 您可以通过聆听file:preview事件并更改模板来创建类似的插件,以便显示带有PDF的iframe:
finder.on( 'file:preview', function( evt ) {
// Check if file extension is supported your plugin
if ( evt.data.extension === 'pdf' ) {
// Stop event propagation so no other listener is fired
evt.stop();
// Add data for template
evt.data.templateData = {
url : evt.data.url
};
// Add template for file preview rendering
evt.data.template = '<iframe src="{{= it.url}}"></iframe>';
}
} );
由于获取直接URL的问题,上面的示例不适用于Dropbox或Amazon等远程后端。但是,3.1版将支持允许加载此类文件的代理命令。