使用Greasemonkey时如何设置TableTools的swf路径

时间:2013-06-17 23:29:41

标签: greasemonkey tabletools

我一直在寻找一段时间没有成功,以我能想到的所有可能的方式调整事情,但没有运气(我必须承认我对此很新)

我正在使用Greasemonkey,我想将表格保存为excel或scv。

我已经安装了Datatables,Greasemonkey中的所有ressources图像和css都没问题,但是我现在仍然坚持使用TableTools安装导出功能。

我在用户名中有这些陈述:

// @require     http://datatables.net/download/build/jquery.dataTables.js
// @require     https://raw.github.com/DataTables/TableTools/master/media/js/ZeroClipboard.js
// @require     http://www.datatables.net/download/build/TableTools.js

而且(我不是百分之百确定这样做的方式):

// @resource    copy_csv_xls    https://github.com/DataTables/TableTools/raw/master/media/swf/copy_csv_xls.swf

然后在我的代码中我有

    $('#GridView1').dataTable( {
    "sDom": 'T<"clear">lfrtip',
    "oTableTools": {
        "sSwfPath": "copy_csv_xls.swf"
        }
    } );

我还尝试使用如下变量设置路径:

var copy_csv_xls = GM_getResourceURL ("copy_csv_xls");

......也没有运气。

我收到了以下错误。 修改。此错误是由于错误的资源链接:我链接到原始的ZeroClipboard仓库,而它需要指向TableTools仓库中的MODIFIED版本(上面的资源链接在编辑中更改)

ReferenceError: ZeroClipboard_TableTools is not defined

var flash = new ZeroClipboard_TableTools.Client();

关于这个问题的任何线索?

提前感谢您的帮助。

编辑(续)我的资源链接错误(请参阅上面的说明),这部分解决了我的问题。 但是我似乎仍然有一个sSwfPath问题,下面的代码是最接近工作的东西,但仍然有些东西不起作用(没有flash插件显示按钮点击没有动作):

    $('#GridView1').dataTable( {
    "sDom": 'T<"clear">lfrtip',
    "oTableTools": {
        "sSwfPath": GM_getResourceURL("copy_csv_xls")
        }
    } );

尽管将ressource设置为copy_csv_xls.swf(而不是copy_csv_xls_pdf.swf),但我显示了PDF按钮,这对我来说有点奇怪。

1 个答案:

答案 0 :(得分:0)

如果检查dataTables.Tabletools.js的源代码,在初始化数据表时,tabletools使用TableTools.DEFAULTS对象并将它们与表自定义设置组合在一起。

在第1158行,根据我所拥有的版本(1.0.4-Tabletools2),代码为ZeroClipboard_TableTools设置了moviePath,我假设它是一个单例。现在,如果页面上有多个表,则此对象最终会获取为最后一个表指定的swfpath值,或者默认&#34; sSwfPath&#34;:&#34; ../ swf / copy_csv_xls_pdf.swf&#34 ; ,如果没有指定。

    /* Flash file location */
        this.s.swfPath = this.s.custom.sSwfPath;
        if ( typeof ZeroClipboard_TableTools != 'undefined' )
        {
            ZeroClipboard_TableTools.moviePath = this.s.swfPath;
        }

所以,我改变了我的页面上的表的初始化顺序作为修复,其中表具有自定义路径作为要初始化的最后一个表。

虽然这解决了路径解析问题,但按钮仍无法正常工作。 ! :-(。希望这有助于某人。

相关问题