我遇到了一个非常烦人的问题-我刚刚在KineticJS中制作了一个可爱的脚本-
http://test.manwe.cz/kolac.php

如您所见,它在Chrome / FF中可以完美地工作,但是在IE中,它只是说我不能使用方法“ indexOf”并指向Kineticjs.js内的某处...
我得到了最新的KineticJS版本,并尝试对其进行调试,看来问题出在Kinetic.Stage构造函数中。当我将其注释掉时,它可以工作(但显然其他任何方法都无法工作)
感谢您的帮助,我有点绝望。

最佳答案

好吧,我也有同样的问题。因此,最好的办法是在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”()并设置了“ Property”()。

我的“猜测”是使用此行代码的kinecticJS的一些内部工作原理:

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


在“我的愚见”行中

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


我的另一个“猜测”是无法通过更改几行代码来解决。
我对此并不完全确定。我刚刚开始研究这个问题。
我可能建议降级版本,但是我不确定这是否可以解决问题。

更新:

所以再往前看,我发现了这篇文章
HTMLCanvas 'getContext' is not a supported property or method
这意味着我以前的“猜测”均不正确。
总结以上所有您需要的帖子是html head数据中的这一行:

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


这解决了我在IE(版本9.0.8112.16421)中遇到的问题

关于javascript - KineticJS不会在Internet Explorer中加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12900608/

10-12 15:25