FusionCharts Ver.3.20.0去除水印

背景

之前老版本FusionCharts去除水印比较简单,新版本进行了不少的改动,个人进行了2小时调试终于实现去除水印操作。

思路

思路1:利用JQuery直接进行DOM操作

  • Charts页面加载完成后,可通过进行jquery的直接dom修改,经测试可隐藏或删除水印。
// 隐藏元素
$('g[pointer-events="bounding-box"]').each(function(){$(this).css("display:none")})
// 删除元素
$('g[pointer-events="bounding-box"]').each(function(){$(this).remove()})
  • FusionCharts有渲染结束事件,事件名称为renderComplete,但在实际应用过程中发现水印的加载是在该事件之后,应当说是(阅读源码后)在所有事件之后。

结论:可在监听页面加载或渲染完毕事件,利用JQ隐藏水印(或者删除),这个思路应该是可行的,但是个人觉得这样子做对原生代码有侵入性操作,不如思路2来得直接。

思路2:调试FusionChart.js源码,找出插入水印的代码

fusionCharts3.20.0在fusioncharts.js中有这么一行代码r._crCreate=function(e){...},方法体里面添加e=0;即可。

即修改后代码为r._crCreate=function(e){e=0;...}

我把格式化后的源码发下,一目了然。

r._crCreate = function (e) {
    e = 0;
    var t,
    r,
    n = this,
    a = n.getFromEnv("paper"),
    o = +n.getFromEnv("chartHeight"),
    s = n.getGraphicalElement(_),
    l = n.getContainer("parentgroup"),
    c = {
        href: i.TXT_HREF
    };
    if (e) {
        if (n.getContainer(S) && n.removeContainer(S),
            s && n.removeGraphicalElement(s),
            !a || !a.group)
            return;
        t = n.addContainer(S, a.group(function (e) {
                    void 0 === e && (e = 8);
                    for (var t = i.BLANK, r = 0; r < e; r++)
                        t += k();
                    return t
                }
                    (), !0)),
        l && t.insertAfter(l),
        n.addGraphicalElement(_, void 0),
        r = this._creatingTheLogo(o - 27.32),
        t.node.appendChild(r),
        n.config.observer ? n.config.observer.disconnect() : n.config.observer = new MutationObserver((function () {
                    return n._crCreate(e)
                })),
        n.config.observer.observe(n.getContainer(S).node, y),
        t.on("fc-click", (function () {
                try {
                    open(c.href)
                } catch (e) {
                    (top || window).location.href = c.href
                }
            }))
    } else
        void 0
}

调试过程不细说了,列位看官可以自己去找关键词:raphael-group,以及水印的详细点击事件。

结论:该思路可行,并且给出了修改方法。

后记

本文只针对去除水印进行技术讨论,不用做商业用途。毕竟作为个人还是要有契约精神。

如果是版本升级,需注意缓存,多次刷新即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sword_happy

您的鼓励亦是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值