2012-03-06 32 views
1

我在我們的網站中使用了tinyMce編輯器。在第一個頁面加載我設置一個onkeypress事件的事件處理程序是這樣的:刪除tinyMCE Editor.onKeyPress事件 - Opera中的中斷

window.onload = function() { 
    tinyMCE.activeEditor.onKeyPress.add(function() { startCookieInterval() }); 
    } 

這在Firefox和Chrome工作正常,但在歌劇它拋出這個JavaScript錯誤:

Uncaught exception: TypeError: Cannot convert 'tinyMCE.activeEditor' to object 

所以我改變了窗口。如果tinyMce編輯器沒有通過window.onload正確初始化,則加載到document.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) 

無的這種情況發生在其他任何瀏覽器。請分享你的想法。由於

hofnarwillie

+0

關於「更改window.onload到document.onload」 - 看起來你在這裏誤解了一些東西。 http://stackoverflow.com/questions/588040/window-onload-vs-document-onload/2445322 – hallvors 2012-03-15 12:41:43

+0

你可以把它放在服務器上,我可以看看它嗎?聽起來很奇怪.. – hallvors 2012-03-15 12:42:48

+0

@hallvors「誤解這裏的東西」,該鏈接並不能解釋你的評論。我誤解了什麼?它支持我的評論,window.onLoad和document.onLoad在不同階段着火。 – hofnarwillie 2012-03-17 21:39:59

回答

0

歌劇並不完全由TinyMCE的支持。這可能是你錯誤的原因。

+0

嗨,感謝您的快速響應。你能否指出我可以在哪裏驗證這一點,以證明它對客戶是正確的,因爲tinyMCE網站似乎說Opera完全受支持。 http://www.tinymce.com/wiki.php/Browser_compatiblity – hofnarwillie 2012-03-06 10:07:37

+0

嗯,我只是檢查了核心代碼。有一個代碼評論說,一個功能不適用於歌劇,但我現在還沒有能夠驗證這一點。也許moxiecode在此期間解決了這個問題。爲了能夠找到錯誤,您可以使用noincompressed tinymce版本(這是開發人員下載中稱爲tiny_mce_dev.js的版本)。使用此文件可以更輕鬆地追蹤錯誤。 – Thariama 2012-03-06 11:15:53

+1

感謝您的建議。當我有機會並且回報時,我會玩弄它。 – hofnarwillie 2012-03-06 12:02:59