2

ひどく厄介な問題が発生しました-KineticJSでかわいいスクリプトを作成しました-http ://test.manwe.cz/kolac.php

ご覧のとおり、Chrome / FFでは問題なく動作しますが、IEでは「indexOf」メソッドを使用できないと表示され、Kineticjs.js内のどこかを指します...最新のKineticJSバージョンを入手し、デバッグを試みましたそれと問題はKinetic.Stageコンストラクターにあるようです。私がそれをコメントアウトするとき、それはうまくいきます(しかし明らかに他には何もうまくいきません)あなたの助けに感謝します、私はちょっと必死です。

4

1 に答える 1

3

さて、私も同じ問題を抱えています。だから私が思いついた最高のものは、javascriptに余分なメソッドを追加することです。

    if (!Array.prototype.indexOf)
    {
      Array.prototype.indexOf = function(elt /*, from*/)
      {
        var len = this.length;

        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;

        for (; from < len; from++)
        {
          if (from in this &&
              this[from] === elt)
            return from;
        }
        return -1;
      };
    }

これによりindexOfの問題は解決しますが、別の問題が発生します。最新のリリースでは、get "Property"()とset "Property"()が追加されているようです。

私の「推測」は、次のコード行を使用したkinecticJSの内部動作の一部です。

 this.context = this.element.getContext('2d');

「私の謙虚な意見では」という行は

 this.setContext(this.getElement().getContext('2d'));

私の他の「推測」は、数行のコードを変更してもこれを修正できないことです。しかし、これについては完全にはわかりません。私はこの問題を検討し始めたところです。バージョンのダウングレードを提案するかもしれませんが、それで問題が解決するかどうかはわかりません。

アップデート:

少し詳しく見てみると、この投稿 HTMLCanvas'getContext'はサポートされているプロパティまたはメソッドではないことがわかりました。これ は、以前の「Guesses」が正しくないことを意味します。上記の投稿を要約すると、HTMLヘッドデータの次の行が必要になります。

<meta http-equiv="X-UA-Compatible" content="chrome=1, IE=edge">

これにより、IE(バージョン9.0.8112.16421)で発生した問題が修正されます。

于 2012-10-16T00:05:14.327 に答える