CKFINDER 3.0:双击PDF文件链接

时间:2015-10-05 21:26:29

标签: pdf view ckfinder

我在我的一个网站上使用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中禁用此功能吗?

感谢您的帮助!

1 个答案:

答案 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版将支持允许加载此类文件的代理命令。