我遇到了一个非常恼人的问题 - 我刚刚在KineticJS制作了一个可爱的剧本 - http://test.manwe.cz/kolac.php
正如您所看到的,它在Chrome / FF中完美运行,但在IE中它只是说我不能使用方法" indexOf"并指向Kineticjs.js内的某个地方...... 我得到了最新的KineticJS版本,我尝试调试它,看起来问题出在Kinetic.Stage构造函数中。当我发表评论时它有效(但显然没有其他工作) 谢谢你的帮助,我有点绝望。
答案 0 :(得分: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”()并设置了“Property”()。
我的“猜测”是使用这一行代码的kinecticJS的一些内部工作原理:
this.context = this.element.getContext('2d');
在“我的拙见”中应该是
this.setContext(this.getElement().getContext('2d'));
我的其他“猜猜”是通过更改几行代码无法解决的问题。 虽然我对此并不完全确定。我刚刚开始研究这个问题。 我可能会建议降级版本,但我不确定这是否能解决问题。
更新
再看一点,我找到了这篇文章 HTMLCanvas 'getContext' is not a supported property or method 这意味着我之前的“猜测”都不正确。 总结上面的帖子你需要的是你的html头数据中的这一行:
<meta http-equiv="X-UA-Compatible" content="chrome=1, IE=edge">
这解决了我在IE(版本9.0.8112.16421)中遇到的问题