我遇到了一个非常烦人的问题 - 我刚刚在 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"() 和 set"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)
关于javascript - KineticJS 无法在 Internet Explorer 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900608/