【发布时间】:2012-03-06 09:52:50
【问题描述】:
我在我们的网站上使用 tinyMce 编辑器。在第一个页面加载时,我设置了一个 onkeypress 事件处理程序,如下所示:
window.onload = function () {
tinyMCE.activeEditor.onKeyPress.add(function () { startCookieInterval() });
}
这在 firefox 和 chrome 中运行良好,但在 opera 中会抛出这个 javascript 错误:
Uncaught exception: TypeError: Cannot convert 'tinyMCE.activeEditor' to object
所以我将 window.onload 更改为 document.onload,以防 tinyMce 编辑器没有被 window.onload 正确初始化。这样就可以正常工作,直到第一次调用事件处理程序。这里我删除了事件处理程序,因为我只想运行一次:
function startCookieInterval() {
tinyMCE.activeEditor.onKeyPress = null;
cookieIntervalTick();
}
此后,在每次按键时,都会出现以下 javascript 错误:
[07/05/1983 08:35:36] JavaScript - http://localhost:10166/4_advice_only/editadviceitem.aspx?ADIID=13127831
Event thread: keypress
Uncaught exception: TypeError: Cannot convert 'v[x[t.fakeType || t.type]]' to object
Error thrown at line 8641, column 20 in r(t, A) in http://localhost:10166/includes/tiny_mce_3_3_8/tiny_mce.js:
v[x[t.fakeType || t.type]].dispatch(v, t, A)
called via Function.prototype.call() from line 3686, column 16 in <anonymous function: g>(n) in http://localhost:10166/includes/tiny_mce_3_3_8/tiny_mce.js:
return l.call(j, n)
在任何其他浏览器中都不会发生这种情况。请分享你的想法。谢谢
霍夫纳威利
【问题讨论】:
-
关于“将 window.onload 更改为 document.onload” - 看来您在这里误解了一些东西。 stackoverflow.com/questions/588040/…
-
你能把它放在服务器上让我看吗?听起来很奇怪..
-
@hallvors“在这里误解了一些东西”,该链接并不能完全解释您的评论。我有什么误解?它支持我关于 window.onLoad 和 document.onLoad 在不同阶段触发的评论。
-
抱歉,我可能应该直接发布到my.opera.com/hallvors/blog/2009/05/20/… 的链接。基本上,分配给 document.onload 不会做任何事情。
-
(如果您可以分享链接或将代码公开在某处,我仍然非常感谢有机会对此进行调查)
标签: javascript tinymce opera onkeypress