1

私はRaphaelSVG/ VMLライブラリをかなり使用してきましたが、WebサイトにはFirefox3.0以降をサポートしていると記載されています。

ただし、最新バージョンのRaphaelとjQuery1.8.3を使用すると問題が発生しました。

var paper = Raphael('divID',500,500);たとえば、紙を作成したり、この紙に形を作成したりすることができますvar rect1 = paper.rect(0,0,100,100);

次に、このrectのバウンディングボックスを取得しようとすると、問題が発生します。コンソールでthis.joinは関数ではありません

パスの作成中にも同じ問題が発生します。

私が見ることができることから、それはgetBBox関数またはpathToString関数に問題があるようです。誰かがこの問題に遭遇しましたか、そして誰かが問題を修正するために私が何を変えることができるか知っていますか?

編集:私が3.0.12について具体的に尋ねる理由は、残念ながら、私の顧客はそのブラウザで実行するしかないからです。

4

1 に答える 1

1

問題は、cloneRaphael ライブラリ内の関数内にあります。この関数は、古いバージョンの Firefox では関数を正しく複製しません。解決策の 1 つは、関数をクローンせずに返すようにコードを変更することです (単純な JavaScript 型の場合と同様)。

したがって、Raphael のclone関数の最終的なコードは次のようになります。

function clone(obj) {
    if (Object(obj) !== obj || typeof obj === 'function') {
        return obj;
    }
    var res = new obj.constructor;
    for (var key in obj) if (obj[has](key)) {
        res[key] = clone(obj[key]);
    }
    return res;
}

これで何も壊れないことを願っています。

于 2012-12-08T17:33:50.550 に答える